Files
Dokumenten-Check/Doku/Ablaufplan.svg
Wolf G. Beckmann 522bc21439 feat: Add Markdown export service for DOCX and PDF formats
- Implemented MarkdownExportService to convert Markdown text into DOCX and PDF formats.
- Supported Markdown elements include headings, bold, italic, blockquotes, tables, and specific emojis.
- Added methods for generating DOCX and PDF documents with proper formatting and rendering.
- Enhanced application properties to enable logging for production environment.
- Introduced a test-run script to reset project state and trigger processing via API.

Co-authored-by: Copilot <copilot@github.com>
2026-04-28 14:32:45 +02:00

1 line
225 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg id="mermaidChart2" width="3146" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="5521" viewBox="-8 -8 3146 5521" role="graphics-document document" aria-roledescription="sequence" class="mermaid-svg" style="color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="747" y="4029" fill="rgb(255, 245, 220)" width="2334.5" height="1260" class="rect" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 220); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><rect x="801" y="1509" fill="rgb(220, 255, 225)" width="2280.5" height="2512" class="rect" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(220, 255, 225); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><rect x="757.5" y="569" fill="rgb(235, 245, 255)" width="2236" height="932" class="rect" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(235, 245, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2967" y="5439" fill="#eaeaea" stroke="#666" width="163" height="65" name="OLLAMA" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="3048.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="3048.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">ollama.aquantico.de</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2718" y="5439" fill="#eaeaea" stroke="#666" width="153" height="65" name="ORDS" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2794.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="2794.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">ORDS / Oracle DB</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2414.5" y="5439" fill="#eaeaea" stroke="#666" width="196" height="65" name="MAIN_MDL" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2512.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="2512.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OllamaChatModel [main]</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2180.5" y="5439" fill="#eaeaea" stroke="#666" width="184" height="65" name="OCR_MDL" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2272.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="2272.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OllamaChatModel [ocr]</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1907.5" y="5439" fill="#eaeaea" stroke="#666" width="150" height="65" name="ES" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1982.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1982.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">EvaluationService</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1580" y="5439" fill="#eaeaea" stroke="#666" width="225" height="65" name="DPS" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1692.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1692.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">DocumentProcessingService</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1380" y="5439" fill="#eaeaea" stroke="#666" width="150" height="65" name="OC" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1455" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1455" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OrdsClient</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1098" y="5439" fill="#eaeaea" stroke="#666" width="150" height="65" name="OLF" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1173" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1173" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OrdsLoggingFilter</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="833" y="5439" fill="#eaeaea" stroke="#666" width="215" height="65" name="COS" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="940.5" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="940.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">CheckOrchestrationService</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="633" y="5439" fill="#eaeaea" stroke="#666" width="150" height="65" name="CR" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="708" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="708" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">CheckResource</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="396" y="5439" fill="#eaeaea" stroke="#666" width="150" height="65" name="AKF" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="471" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="471" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">ApiKeyFilter</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="0" y="5439" fill="#eaeaea" stroke="#666" width="150" height="65" name="Client" rx="3" ry="3" class="actor actor-bottom" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="75" y="5471.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="75" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">APEX / Client</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor11" x1="3048.5" y1="65" x2="3048.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="OLLAMA" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-11" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2967" y="0" fill="#eaeaea" stroke="#666" width="163" height="65" name="OLLAMA" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="3048.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="3048.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">ollama.aquantico.de</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor10" x1="2794.5" y1="65" x2="2794.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="ORDS" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-10" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2718" y="0" fill="#eaeaea" stroke="#666" width="153" height="65" name="ORDS" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2794.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="2794.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">ORDS / Oracle DB</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor9" x1="2512.5" y1="65" x2="2512.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="MAIN_MDL" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-9" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2414.5" y="0" fill="#eaeaea" stroke="#666" width="196" height="65" name="MAIN_MDL" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2512.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="2512.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OllamaChatModel [main]</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor8" x1="2272.5" y1="65" x2="2272.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="OCR_MDL" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-8" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2180.5" y="0" fill="#eaeaea" stroke="#666" width="184" height="65" name="OCR_MDL" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2272.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="2272.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OllamaChatModel [ocr]</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor7" x1="1982.5" y1="65" x2="1982.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="ES" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-7" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1907.5" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="ES" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1982.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1982.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">EvaluationService</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor6" x1="1692.5" y1="65" x2="1692.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="DPS" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-6" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1580" y="0" fill="#eaeaea" stroke="#666" width="225" height="65" name="DPS" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1692.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1692.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">DocumentProcessingService</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor5" x1="1455" y1="65" x2="1455" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="OC" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-5" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1380" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="OC" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1455" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1455" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OrdsClient</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor4" x1="1173" y1="65" x2="1173" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="OLF" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-4" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1098" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="OLF" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1173" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="1173" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OrdsLoggingFilter</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor3" x1="940.5" y1="65" x2="940.5" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="COS" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-3" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="833" y="0" fill="#eaeaea" stroke="#666" width="215" height="65" name="COS" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="940.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="940.5" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">CheckOrchestrationService</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor2" x1="708" y1="65" x2="708" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="CR" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-2" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="633" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="CR" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="708" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="708" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">CheckResource</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor1" x1="471" y1="65" x2="471" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="AKF" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-1" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="396" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="AKF" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="471" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="471" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">ApiKeyFilter</tspan></text></g></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line id="actor0" x1="75" y1="65" x2="75" y2="5439" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Client" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><g id="root-0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="0" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="Client" rx="3" ry="3" class="actor actor-top" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="75" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400; font-family: sans-serif; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; padding: 0px; margin: 0px;"><tspan x="75" dy="0" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">APEX / Client</tspan></text></g></g><style style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;">#mermaidChart2{font-family:sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaidChart2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaidChart2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaidChart2 .error-icon{fill:#552222;}#mermaidChart2 .error-text{fill:#552222;stroke:#552222;}#mermaidChart2 .edge-thickness-normal{stroke-width:1px;}#mermaidChart2 .edge-thickness-thick{stroke-width:3.5px;}#mermaidChart2 .edge-pattern-solid{stroke-dasharray:0;}#mermaidChart2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaidChart2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaidChart2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaidChart2 .marker{fill:#333333;stroke:#333333;}#mermaidChart2 .marker.cross{stroke:#333333;}#mermaidChart2 svg{font-family:sans-serif;font-size:16px;}#mermaidChart2 p{margin:0;}#mermaidChart2 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaidChart2 text.actor&gt;tspan{fill:black;stroke:none;}#mermaidChart2 .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaidChart2 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaidChart2 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaidChart2 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaidChart2 #arrowhead path{fill:#333;stroke:#333;}#mermaidChart2 .sequenceNumber{fill:white;}#mermaidChart2 #sequencenumber{fill:#333;}#mermaidChart2 #crosshead path{fill:#333;stroke:#333;}#mermaidChart2 .messageText{fill:#333;stroke:none;}#mermaidChart2 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaidChart2 .labelText,#mermaidChart2 .labelText&gt;tspan{fill:black;stroke:none;}#mermaidChart2 .loopText,#mermaidChart2 .loopText&gt;tspan{fill:black;stroke:none;}#mermaidChart2 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaidChart2 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaidChart2 .noteText,#mermaidChart2 .noteText&gt;tspan{fill:black;stroke:none;}#mermaidChart2 .activation0{fill:#f4f4f4;stroke:#666;}#mermaidChart2 .activation1{fill:#f4f4f4;stroke:#666;}#mermaidChart2 .activation2{fill:#f4f4f4;stroke:#666;}#mermaidChart2 .actorPopupMenu{position:absolute;}#mermaidChart2 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaidChart2 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaidChart2 .actor-man circle,#mermaidChart2 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaidChart2 :root{--mermaid-alt-font-family:sans-serif;}</style><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></g><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><symbol id="computer" width="24" height="24" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path transform="scale(.5)" d="M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></symbol></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><symbol id="database" fill-rule="evenodd" clip-rule="evenodd" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path transform="scale(.5)" d="M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></symbol></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><symbol id="clock" width="24" height="24" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path transform="scale(.5)" d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></symbol></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="arrowhead" refX="7.9" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path d="M -1 0 L 10 5 L 0 10 z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="4" refY="4.5" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path fill="none" stroke="#000000" stroke-width="1pt" d="M 1,2 L 6,7 M 6,2 L 1,7" style="stroke-dasharray: 0px, 0px; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.33333px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="filled-head" refX="15.5" refY="7" markerWidth="20" markerHeight="28" orient="auto" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path d="M 18,7 L9,13 L14,7 L9,1 Z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><circle cx="15" cy="15" r="6" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></circle></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="solidTopArrowHead" refX="7.9" refY="7.25" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path d="M 0 0 L 10 8 L 0 8 z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="solidBottomArrowHead" refX="7.9" refY="0.75" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path d="M 0 0 L 10 0 L 0 8 z" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="stickTopArrowHead" refX="7.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path d="M 0 0 L 7 7" stroke="black" stroke-width="1.5" fill="none" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: none; stroke: rgb(0, 0, 0); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><defs style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><marker id="stickBottomArrowHead" refX="7.5" refY="0" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><path d="M 0 7 L 7 0" stroke="black" stroke-width="1.5" fill="none" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: none; stroke: rgb(0, 0, 0); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path></marker></defs><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="338" y="191" fill="#EDF2AE" stroke="#666" width="266" height="55" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="471" y="196" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="471" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Prüft X-API-KEY gegen dc.api.key</tspan></text><text x="471" y="214" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="471" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">→ 401 wenn ungültig, sonst weiter</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="683" y="416" fill="#EDF2AE" stroke="#666" width="282.5" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="824" y="421" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="824" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">CompletableFuture.runAsync() Fire &amp; Forget</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1148" y="506" fill="#EDF2AE" stroke="#666" width="1671.5" height="55" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1984" y="511" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1984" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">OrdsLoggingFilter.filter() loggt jeden Request/Response</tspan></text><text x="1984" y="529" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1984" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">des REST-Clients (ClientRequestFilter + ClientResponseFilter)</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="915.5" y="585" fill="#EDF2AE" stroke="#666" width="1904" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1868" y="590" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1868" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Initialisierung</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="765.5" y="925" fill="#EDF2AE" stroke="#666" width="350" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="941" y="930" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="941" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Status-Prüfung: nur PENDING wird verarbeitet</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2603.5" y="1455" fill="#EDF2AE" stroke="#666" width="382" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2795" y="1460" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="2795" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Alte Ergebnisse löschen → Re-Processing möglich</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="915.5" y="1525" fill="#EDF2AE" stroke="#666" width="2158" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1995" y="1530" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1995" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Phase A OCR + Übersetzung (pro Dokument)</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1667.5" y="2432" fill="#EDF2AE" stroke="#666" width="630" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1983" y="2437" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1983" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">UserMessage: ImageContent(PNG) + TextContent(OCR-Prompt)</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line x1="1520" y1="2125" x2="3057.5" y2="2125" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3057.5" y1="2125" x2="3057.5" y2="2610" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1520" y1="2610" x2="3057.5" y2="2610" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1520" y1="2125" x2="1520" y2="2610" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><polygon points="1520,2125 1570,2125 1570,2138 1561.6,2145 1520,2145" class="labelBox" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></polygon><text x="1545" y="2138" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">loop</text><text x="2313.75" y="2141" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="2313.75" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">[für jede PDF-Seite]</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line x1="1537.5" y1="2807" x2="1849.5" y2="2807" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1849.5" y1="2807" x2="1849.5" y2="3026" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1537.5" y1="3026" x2="1849.5" y2="3026" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1537.5" y1="2807" x2="1537.5" y2="3026" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><polygon points="1537.5,2807 1587.5,2807 1587.5,2820 1579.1,2827 1537.5,2827" class="labelBox" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></polygon><text x="1563" y="2820" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">loop</text><text x="1718.5" y="2823" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1718.5" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">[für jedes Body-Element]</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1576.5" y="3338" fill="#EDF2AE" stroke="#666" width="232" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1693" y="3343" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1693" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">direkt als UTF-8 String zurück</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line x1="1512" y1="1862" x2="3065.5" y2="1862" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3065.5" y1="1862" x2="3065.5" y2="3384" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1512" y1="3384" x2="3065.5" y2="3384" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1512" y1="1862" x2="1512" y2="3384" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1512" y1="2623" x2="3065.5" y2="2623" class="loopLine" style="stroke-dasharray: 3px, 3px; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1512" y1="3039" x2="3065.5" y2="3039" class="loopLine" style="stroke-dasharray: 3px, 3px; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1512" y1="3302" x2="3065.5" y2="3302" class="loopLine" style="stroke-dasharray: 3px, 3px; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><polygon points="1512,1862 1562,1862 1562,1875 1553.6,1882 1512,1882" class="labelBox" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></polygon><text x="1537" y="1875" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">alt</text><text x="2313.75" y="1878" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="2313.75" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">[MIME = application/pdf]</tspan></text><text x="2288.75" y="2639" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">[MIME = application/vnd...wordprocessingml / msword]</text><text x="2288.75" y="3055" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">[MIME = application/vnd.oasis.opendocument.text]</text><text x="2288.75" y="3318" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">[text/plain | text/markdown]</text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1957.5" y="3524" fill="#EDF2AE" stroke="#666" width="580" height="55" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2248" y="3529" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="2248" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">SystemMessage: Übersetzer-Prompt</tspan></text><text x="2248" y="3547" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="2248" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">UserMessage: originalText</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line x1="809" y1="1571" x2="3073.5" y2="1571" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3073.5" y1="1571" x2="3073.5" y2="4013" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="809" y1="4013" x2="3073.5" y2="4013" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="809" y1="1571" x2="809" y2="4013" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><polygon points="809,1571 859,1571 859,1584 850.6,1591 809,1591" class="labelBox" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></polygon><text x="834" y="1584" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">loop</text><text x="1966.25" y="1587" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1966.25" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">[für jedes OrdsDocument]</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="915.5" y="4045" fill="#EDF2AE" stroke="#666" width="2158" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1995" y="4050" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1995" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Phase B Fragenauswertung (pro Dokument × Frage)</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1824" y="4324" fill="#EDF2AE" stroke="#666" width="317" height="55" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1983" y="4329" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1983" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Prompt: Dokument + Frage + Schwellwert</tspan></text><text x="1983" y="4347" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1983" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">+ Beispiele 0% / 100%</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="1823.5" y="4711" fill="#EDF2AE" stroke="#666" width="318" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="1983" y="4716" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1983" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">Regex: ```json...``` oder erstes {...} im Text</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="763" y="4949" fill="#EDF2AE" stroke="#666" width="355" height="74" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="941" y="4954" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="941" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">score &lt; threshold?</tspan></text><text x="941" y="4972" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="941" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">result_handling=ABWEICHUNG → deviation=1</tspan></text><text x="941" y="4990" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="941" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">result_handling=HINWEIS → warning=1</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><line x1="755" y1="4091" x2="3057.5" y2="4091" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3057.5" y1="4091" x2="3057.5" y2="5281" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="755" y1="5281" x2="3057.5" y2="5281" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="755" y1="4091" x2="755" y2="5281" class="loopLine" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(218, 206, 243); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: 2px, 2px; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><polygon points="755,4091 805,4091 805,4104 796.6,4111 755,4111" class="labelBox" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></polygon><text x="780" y="4104" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">loop</text><text x="1931.25" y="4107" text-anchor="middle" class="loopText" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="1931.25" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">[für jedes OrdsDocument × jede OrdsQuestion]</tspan></text></g><g style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"><rect x="2602.5" y="5385" fill="#EDF2AE" stroke="#666" width="384" height="38" class="note" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 245, 173); stroke: rgb(170, 170, 51); stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></rect><text x="2795" y="5390" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;"><tspan x="2795" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(0, 0, 0); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">status → COMPLETED, completed_at = SYSDATE</tspan></text></g><text x="272" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /check/{projectId} (Header: X-API-KEY)</text><line x1="82" y1="109" x2="467" y2="109" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="75" y1="109" x2="75" y2="109" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="75" y="113" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">1</text><text x="472" y="124" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">filter(ContainerRequestContext)</text><path d="M 472,153 C 532,143 532,183 472,173" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="478" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="471" y1="153" x2="471" y2="153" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="471" y="157" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">2</text><text x="588" y="261" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">weiterleiten (Key gültig)</text><line x1="478" y1="290" x2="704" y2="290" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="471" y1="290" x2="471" y2="290" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="471" y="294" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">3</text><text x="709" y="305" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">startCheck(projectId)</text><path d="M 709,334 C 769,324 769,364 709,354" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="715" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="708" y1="334" x2="708" y2="334" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="708" y="338" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">4</text><text x="393" y="379" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">202 Accepted { message, project_id, hint }</text><line x1="713" y1="408" x2="79" y2="408" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="708" y1="408" x2="708" y2="408" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="708" y="412" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">5</text><text x="823" y="469" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">process(projectId)</text><line x1="715" y1="498" x2="936.5" y2="498" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#filled-head)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="708" y1="498" x2="708" y2="498" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="708" y="502" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">6</text><text x="1196" y="638" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">getProject(projectId)</text><line x1="947.5" y1="667" x2="1451" y2="667" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="667" x2="940.5" y2="667" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="671" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">7</text><text x="1316" y="682" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">filter(ClientRequestContext)</text><line x1="1460" y1="711" x2="1177" y2="711" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="711" x2="1455" y2="711" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="715" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">8</text><text x="1982" y="726" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">GET /api/dc/projects/{id}</text><line x1="1180" y1="755" x2="2790.5" y2="755" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1173" y1="755" x2="1173" y2="755" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1173" y="759" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">9</text><text x="1985" y="770" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">OrdsProject (JSON)</text><line x1="2799.5" y1="799" x2="1177" y2="799" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2794.5" y1="799" x2="2794.5" y2="799" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2794.5" y="803" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">10</text><text x="1174" y="814" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">filter(ClientRequestContext, ClientResponseContext)</text><path d="M 1174,843 C 1234,833 1234,873 1174,863" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1180" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1173" y1="843" x2="1173" y2="843" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1173" y="847" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">11</text><text x="1058" y="888" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">OrdsProject</text><line x1="1178" y1="917" x2="944.5" y2="917" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1173" y1="917" x2="1173" y2="917" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1173" y="921" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">12</text><text x="1196" y="978" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">startProject(projectId)</text><line x1="947.5" y1="1007" x2="1451" y2="1007" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="1007" x2="940.5" y2="1007" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="1011" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">13</text><text x="2123" y="1022" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /api/dc/projects/{id}/start</text><line x1="1462" y1="1051" x2="2790.5" y2="1051" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="1051" x2="1455" y2="1051" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="1055" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">14</text><text x="1869" y="1066" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">200 OK | 409 Conflict</text><line x1="2799.5" y1="1095" x2="944.5" y2="1095" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2794.5" y1="1095" x2="2794.5" y2="1095" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2794.5" y="1099" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">15</text><text x="1196" y="1110" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">getDocuments(projectId)</text><line x1="947.5" y1="1139" x2="1451" y2="1139" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="1139" x2="940.5" y2="1139" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="1143" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">16</text><text x="2123" y="1154" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">GET /api/dc/projects/{id}/documents/</text><line x1="1462" y1="1183" x2="2790.5" y2="1183" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="1183" x2="1455" y2="1183" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="1187" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">17</text><text x="1869" y="1198" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">OrdsDocumentList</text><line x1="2799.5" y1="1227" x2="944.5" y2="1227" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2794.5" y1="1227" x2="2794.5" y2="1227" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2794.5" y="1231" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">18</text><text x="1196" y="1242" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">getQuestions(catalogId)</text><line x1="947.5" y1="1271" x2="1451" y2="1271" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="1271" x2="940.5" y2="1271" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="1275" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">19</text><text x="2123" y="1286" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">GET /api/dc/catalogs/{id}/questions/</text><line x1="1462" y1="1315" x2="2790.5" y2="1315" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="1315" x2="1455" y2="1315" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="1319" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">20</text><text x="1869" y="1330" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">OrdsQuestionList</text><line x1="2799.5" y1="1359" x2="944.5" y2="1359" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2794.5" y1="1359" x2="2794.5" y2="1359" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2794.5" y="1363" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">21</text><text x="1196" y="1374" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">deleteResults(projectId)</text><line x1="947.5" y1="1403" x2="1451" y2="1403" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="1403" x2="940.5" y2="1403" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="1407" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">22</text><text x="2123" y="1418" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">DELETE /api/dc/projects/{id}/results</text><line x1="1462" y1="1447" x2="2790.5" y2="1447" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="1447" x2="1455" y2="1447" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="1451" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">23</text><text x="1196" y="1619" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">downloadFile(docId)</text><line x1="947.5" y1="1648" x2="1451" y2="1648" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="1648" x2="940.5" y2="1648" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="1652" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">24</text><text x="2123" y="1663" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">GET /api/dc/documents/{id}/file</text><line x1="1462" y1="1692" x2="2790.5" y2="1692" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="1692" x2="1455" y2="1692" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="1696" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">25</text><text x="1869" y="1707" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">byte[] (BLOB)</text><line x1="2799.5" y1="1736" x2="944.5" y2="1736" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2794.5" y1="1736" x2="2794.5" y2="1736" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2794.5" y="1740" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">26</text><text x="1315" y="1751" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">extractText(fileBytes, mimeType, filename)</text><line x1="947.5" y1="1780" x2="1688.5" y2="1780" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="1780" x2="940.5" y2="1780" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="1784" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">27</text><text x="1694" y="1795" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">resolveMimeType(mimeType, filename)</text><path d="M 1693.5,1824 C 1753.5,1814 1753.5,1854 1693.5,1844" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="1824" x2="1692.5" y2="1824" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="1828" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">28</text><text x="1694" y="1910" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">extractFromPdf(fileBytes)</text><path d="M 1693.5,1939 C 1753.5,1929 1753.5,1969 1693.5,1959" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="1939" x2="1692.5" y2="1939" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="1943" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">29</text><text x="1694" y="1984" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">Loader.loadPDF(fileBytes) → PDDocument</text><path d="M 1693.5,2013 C 1753.5,2003 1753.5,2043 1693.5,2033" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2013" x2="1692.5" y2="2013" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2017" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">30</text><text x="1694" y="2058" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">new PDFRenderer(pdf)</text><path d="M 1693.5,2087 C 1753.5,2077 1753.5,2117 1693.5,2107" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2087" x2="1692.5" y2="2087" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2091" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">31</text><text x="1694" y="2173" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">renderer.renderImageWithDPI(i, 200f, RGB)</text><path d="M 1693.5,2202 C 1753.5,2192 1753.5,2232 1693.5,2222" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2202" x2="1692.5" y2="2202" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2206" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">32</text><text x="1694" y="2247" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">ImageIO.write(image, "PNG", baos) → Base64</text><path d="M 1693.5,2276 C 1753.5,2266 1753.5,2306 1693.5,2296" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2276" x2="1692.5" y2="2276" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2280" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">33</text><text x="1694" y="2321" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">ocrPage(base64Image, pageNum, totalPages)</text><path d="M 1693.5,2350 C 1753.5,2340 1753.5,2380 1693.5,2370" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2350" x2="1692.5" y2="2350" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2354" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">34</text><text x="1981" y="2395" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">generate(List&lt;ChatMessage&gt;)</text><line x1="1699.5" y1="2424" x2="2268.5" y2="2424" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1692.5" y1="2424" x2="1692.5" y2="2424" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2428" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">35</text><text x="2659" y="2485" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /api/chat [Vision, X-API-KEY]</text><line x1="2279.5" y1="2514" x2="3044.5" y2="2514" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2272.5" y1="2514" x2="2272.5" y2="2514" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2272.5" y="2518" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">36</text><text x="2662" y="2529" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">Markdown-Seitentext</text><line x1="3053.5" y1="2558" x2="2276.5" y2="2558" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3048.5" y1="2558" x2="3048.5" y2="2558" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="3048.5" y="2562" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">37</text><text x="1984" y="2573" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">String (Seite i)</text><line x1="2277.5" y1="2602" x2="1696.5" y2="2602" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2272.5" y1="2602" x2="2272.5" y2="2602" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2272.5" y="2606" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">38</text><text x="1694" y="2666" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">extractFromDocx(fileBytes)</text><path d="M 1693.5,2695 C 1753.5,2685 1753.5,2725 1693.5,2715" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2695" x2="1692.5" y2="2695" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2699" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">39</text><text x="1694" y="2740" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">new XWPFDocument(stream)</text><path d="M 1693.5,2769 C 1753.5,2759 1753.5,2799 1693.5,2789" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2769" x2="1692.5" y2="2769" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2773" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">40</text><text x="1694" y="2855" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">paragraphToMarkdown(XWPFParagraph)</text><path d="M 1693.5,2884 C 1753.5,2874 1753.5,2914 1693.5,2904" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2884" x2="1692.5" y2="2884" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2888" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">41</text><text x="1694" y="2929" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">tableToMarkdown(XWPFTable)</text><path d="M 1693.5,2958 C 1753.5,2948 1753.5,2988 1693.5,2978" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="2958" x2="1692.5" y2="2958" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="2962" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">42</text><text x="1694" y="3082" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">extractFromOdt(fileBytes)</text><path d="M 1693.5,3111 C 1753.5,3101 1753.5,3141 1693.5,3131" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="3111" x2="1692.5" y2="3111" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="3115" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">43</text><text x="1694" y="3156" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">OdfTextDocument.loadDocument(stream)</text><path d="M 1693.5,3185 C 1753.5,3175 1753.5,3215 1693.5,3205" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="3185" x2="1692.5" y2="3185" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="3189" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">44</text><text x="1694" y="3230" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">getElementsByTagName("text:p") → Markdown</text><path d="M 1693.5,3259 C 1753.5,3249 1753.5,3289 1693.5,3279" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1699.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1692.5" y1="3259" x2="1692.5" y2="3259" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="3263" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">45</text><text x="1318" y="3399" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">originalText (Markdown)</text><line x1="1697.5" y1="3428" x2="944.5" y2="3428" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1692.5" y1="3428" x2="1692.5" y2="3428" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1692.5" y="3432" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">46</text><text x="1460" y="3443" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">translate(originalText)</text><line x1="947.5" y1="3472" x2="1978.5" y2="3472" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="3472" x2="940.5" y2="3472" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="3476" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">47</text><text x="2246" y="3487" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">generate(List&lt;ChatMessage&gt;)</text><line x1="1989.5" y1="3516" x2="2508.5" y2="3516" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1982.5" y1="3516" x2="1982.5" y2="3516" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="3520" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">48</text><text x="2779" y="3594" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /api/chat [X-API-KEY]</text><line x1="2519.5" y1="3623" x2="3044.5" y2="3623" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2512.5" y1="3623" x2="2512.5" y2="3623" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2512.5" y="3627" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">49</text><text x="2782" y="3638" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">Übersetzung (Deutsch)</text><line x1="3053.5" y1="3667" x2="2516.5" y2="3667" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3048.5" y1="3667" x2="3048.5" y2="3667" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="3048.5" y="3671" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">50</text><text x="2249" y="3682" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">Response&lt;AiMessage&gt;</text><line x1="2517.5" y1="3711" x2="1986.5" y2="3711" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2512.5" y1="3711" x2="2512.5" y2="3711" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2512.5" y="3715" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">51</text><text x="1463" y="3726" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">translatedText</text><line x1="1987.5" y1="3755" x2="944.5" y2="3755" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1982.5" y1="3755" x2="1982.5" y2="3755" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="3759" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">52</text><text x="1196" y="3770" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">updateTexts(docId, TextsRequest(original, translated))</text><line x1="947.5" y1="3799" x2="1451" y2="3799" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="3799" x2="940.5" y2="3799" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="3803" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">53</text><text x="2123" y="3814" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">PUT /api/dc/documents/{id}/texts</text><line x1="1462" y1="3843" x2="2790.5" y2="3843" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="3843" x2="1455" y2="3843" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="3847" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">54</text><text x="942" y="3858" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">pushProgress(projectId, step, total)</text><path d="M 941.5,3887 C 1001.5,3877 1001.5,3917 941.5,3907" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="947.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="940.5" y1="3887" x2="940.5" y2="3887" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="3891" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">55</text><text x="1196" y="3932" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">updateProgress(projectId, ProgressRequest(pct))</text><line x1="947.5" y1="3961" x2="1451" y2="3961" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="3961" x2="940.5" y2="3961" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="3965" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">56</text><text x="2123" y="3976" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">PUT /api/dc/projects/{id}/progress</text><line x1="1462" y1="4005" x2="2790.5" y2="4005" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="4005" x2="1455" y2="4005" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="4009" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">57</text><text x="1460" y="4139" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">evaluate(question, originalText)</text><line x1="947.5" y1="4168" x2="1978.5" y2="4168" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="4168" x2="940.5" y2="4168" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="4172" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">58</text><text x="1984" y="4183" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">buildEvaluationSystem()</text><path d="M 1983.5,4212 C 2043.5,4202 2043.5,4242 1983.5,4232" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1989.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1982.5" y1="4212" x2="1982.5" y2="4212" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4216" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">59</text><text x="1984" y="4257" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">buildEvaluationUser(question, documentText)</text><path d="M 1983.5,4286 C 2043.5,4276 2043.5,4316 1983.5,4306" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1989.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1982.5" y1="4286" x2="1982.5" y2="4286" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4290" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">60</text><text x="2246" y="4394" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">generate(List&lt;ChatMessage&gt;)</text><line x1="1989.5" y1="4423" x2="2508.5" y2="4423" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1982.5" y1="4423" x2="1982.5" y2="4423" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4427" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">61</text><text x="2779" y="4438" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /api/chat [X-API-KEY]</text><line x1="2519.5" y1="4467" x2="3044.5" y2="4467" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2512.5" y1="4467" x2="2512.5" y2="4467" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2512.5" y="4471" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">62</text><text x="2782" y="4482" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">JSON { answer, score, result_type, the_comment }</text><line x1="3053.5" y1="4511" x2="2516.5" y2="4511" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="3048.5" y1="4511" x2="3048.5" y2="4511" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="3048.5" y="4515" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">63</text><text x="2249" y="4526" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">Response&lt;AiMessage&gt;</text><line x1="2517.5" y1="4555" x2="1986.5" y2="4555" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="2512.5" y1="4555" x2="2512.5" y2="4555" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="2512.5" y="4559" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">64</text><text x="1984" y="4570" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">parseEvaluationResult(rawText, question)</text><path d="M 1983.5,4599 C 2043.5,4589 2043.5,4629 1983.5,4619" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1989.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1982.5" y1="4599" x2="1982.5" y2="4599" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4603" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">65</text><text x="1984" y="4644" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">extractJson(text)</text><path d="M 1983.5,4673 C 2043.5,4663 2043.5,4703 1983.5,4693" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1989.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1982.5" y1="4673" x2="1982.5" y2="4673" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4677" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">66</text><text x="1984" y="4764" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">objectMapper.readValue(json, EvaluationResult)</text><path d="M 1983.5,4793 C 2043.5,4783 2043.5,4823 1983.5,4813" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1989.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1982.5" y1="4793" x2="1982.5" y2="4793" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4797" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">67</text><text x="1984" y="4838" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">deriveResultType(score, threshold) [Fallback]</text><path d="M 1983.5,4867 C 2043.5,4857 2043.5,4897 1983.5,4887" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="1989.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="1982.5" y1="4867" x2="1982.5" y2="4867" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4871" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">68</text><text x="1463" y="4912" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">EvaluationResult { answer, score, resultType, theComment }</text><line x1="1987.5" y1="4941" x2="944.5" y2="4941" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3px, 3px; fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1982.5" y1="4941" x2="1982.5" y2="4941" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1982.5" y="4945" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">69</text><text x="1196" y="5038" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">saveResult(projectId, ResultRequest)</text><line x1="947.5" y1="5067" x2="1451" y2="5067" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="5067" x2="940.5" y2="5067" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="5071" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">70</text><text x="2123" y="5082" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /api/dc/projects/{id}/results → 201 Created</text><line x1="1462" y1="5111" x2="2790.5" y2="5111" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="5111" x2="1455" y2="5111" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="5115" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">71</text><text x="942" y="5126" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">pushProgress(projectId, step, total)</text><path d="M 941.5,5155 C 1001.5,5145 1001.5,5185 941.5,5175" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" x1="947.5" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></path><line x1="940.5" y1="5155" x2="940.5" y2="5155" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="5159" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">72</text><text x="1196" y="5200" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">updateProgress(projectId, ProgressRequest(pct))</text><line x1="947.5" y1="5229" x2="1451" y2="5229" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="5229" x2="940.5" y2="5229" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="5233" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">73</text><text x="2123" y="5244" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">PUT /api/dc/projects/{id}/progress</text><line x1="1462" y1="5273" x2="2790.5" y2="5273" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="5273" x2="1455" y2="5273" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="5277" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">74</text><text x="1196" y="5304" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">completeProject(projectId)</text><line x1="947.5" y1="5333" x2="1451" y2="5333" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="940.5" y1="5333" x2="940.5" y2="5333" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="940.5" y="5337" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">75</text><text x="2123" y="5348" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: sans-serif; font-size: 16px; font-weight: 400; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(51, 51, 51); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; text-anchor: middle; padding: 0px; margin: 0px;">POST /api/dc/projects/{id}/complete</text><line x1="1462" y1="5377" x2="2790.5" y2="5377" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none; background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); stroke: rgb(51, 51, 51); stroke-width: 1.5px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><line x1="1455" y1="5377" x2="1455" y2="5377" stroke-width="0" marker-start="url(#sequencenumber)" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(236, 236, 255); stroke: rgb(218, 206, 243); stroke-width: 2px; opacity: 1; stroke-dasharray: none; font-size: 16px; font-family: sans-serif; text-anchor: start; padding: 0px; margin: 0px;"></line><text x="1455" y="5381" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber" style="background-color: rgba(0, 0, 0, 0); color: rgb(51, 51, 51); fill: rgb(255, 255, 255); stroke: none; stroke-width: 1px; opacity: 1; stroke-dasharray: none; font-size: 12px; font-family: sans-serif; text-anchor: middle; padding: 0px; margin: 0px;">76</text></svg>