subAgents, String description) {
- return FunctionToolCallback.builder("task", new TaskTool(subAgents))
- .description(description)
- .inputType(TaskRequest.class)
- .build();
- }
-
- /**
- * Request structure for the task tool.
- */
- public static class TaskRequest {
-
- @JsonProperty(required = true)
- @JsonPropertyDescription("Detailed description of the task to be performed by the subagent")
- public String description;
-
- @JsonProperty(required = true, value = "subagent_type")
- @JsonPropertyDescription("The type of subagent to use for this task")
- public String subagentType;
-
- public TaskRequest() {
- }
-
- public TaskRequest(String description, String subagentType) {
- this.description = description;
- this.subagentType = subagentType;
- }
- }
-}
-
diff --git a/agentic-ai-agent-framework/src/main/java/io/github/agentic/spring/ai/graph/agent/renderer/SaaStTemplateRenderer.java b/agentic-ai-agent-framework/src/main/java/io/github/agentic/spring/ai/graph/agent/renderer/SaaStTemplateRenderer.java
deleted file mode 100644
index 87da5f6c4..000000000
--- a/agentic-ai-agent-framework/src/main/java/io/github/agentic/spring/ai/graph/agent/renderer/SaaStTemplateRenderer.java
+++ /dev/null
@@ -1,649 +0,0 @@
-/*
- * Copyright 2024-2025 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.agent.renderer;
-
-import org.springframework.ai.template.TemplateRenderer;
-import org.springframework.ai.template.ValidationMode;
-
-import org.springframework.util.Assert;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.antlr.runtime.Token;
-import org.antlr.runtime.TokenStream;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.stringtemplate.v4.ST;
-import org.stringtemplate.v4.STGroup;
-import org.stringtemplate.v4.compiler.Compiler;
-import org.stringtemplate.v4.compiler.STLexer;
-
-public class SaaStTemplateRenderer implements TemplateRenderer {
-
- private static final Logger logger = LoggerFactory.getLogger(SaaStTemplateRenderer.class);
-
- private static final String VALIDATION_MESSAGE = "Not all variables were replaced in the template. Missing variable names are: %s.";
-
- private static final char DEFAULT_START_DELIMITER_TOKEN = '{';
-
- private static final char DEFAULT_END_DELIMITER_TOKEN = '}';
-
- private static final String DEFAULT_START_DELIMITER_STRING = "{";
-
- private static final String DEFAULT_END_DELIMITER_STRING = "}";
-
- private static final ValidationMode DEFAULT_VALIDATION_MODE = ValidationMode.THROW;
-
- private static final boolean DEFAULT_VALIDATE_ST_FUNCTIONS = false;
-
- // Use uncommon characters as temporary delimiters for string-based delimiter conversion
- private static final char TEMP_START_DELIMITER = '\u0001';
-
- private static final char TEMP_END_DELIMITER = '\u0002';
-
- private final char startDelimiterToken;
-
- private final char endDelimiterToken;
-
- private final String startDelimiterString;
-
- private final String endDelimiterString;
-
- private final boolean useStringDelimiters;
-
- private final ValidationMode validationMode;
-
- private final boolean validateStFunctions;
-
- /**
- * Constructs a new {@code SaaStTemplateRenderer} with the specified delimiter tokens,
- * validation mode, and function validation flag.
- * @param startDelimiterToken the character used to denote the start of a template
- * variable (e.g., '{')
- * @param endDelimiterToken the character used to denote the end of a template
- * variable (e.g., '}')
- * @param validationMode the mode to use for template variable validation; must not be
- * null
- * @param validateStFunctions whether to validate StringTemplate functions in the
- * template
- */
- public SaaStTemplateRenderer(char startDelimiterToken, char endDelimiterToken, ValidationMode validationMode,
- boolean validateStFunctions) {
- Assert.notNull(validationMode, "validationMode cannot be null");
- this.startDelimiterToken = startDelimiterToken;
- this.endDelimiterToken = endDelimiterToken;
- this.startDelimiterString = String.valueOf(startDelimiterToken);
- this.endDelimiterString = String.valueOf(endDelimiterToken);
- this.useStringDelimiters = false;
- this.validationMode = validationMode;
- this.validateStFunctions = validateStFunctions;
- }
-
- /**
- * Constructs a new {@code SaaStTemplateRenderer} with the specified string delimiter tokens,
- * validation mode, and function validation flag.
- *
- * This constructor supports multi-character delimiters (e.g., "{{" and "}}"), which is
- * useful for avoiding conflicts with JSON content or other text that uses single-character
- * delimiters.
- * @param startDelimiterString the string used to denote the start of a template
- * variable (e.g., "{{")
- * @param endDelimiterString the string used to denote the end of a template
- * variable (e.g., "}}")
- * @param validationMode the mode to use for template variable validation; must not be
- * null
- * @param validateStFunctions whether to validate StringTemplate functions in the
- * template
- */
- public SaaStTemplateRenderer(String startDelimiterString, String endDelimiterString, ValidationMode validationMode,
- boolean validateStFunctions) {
- Assert.notNull(validationMode, "validationMode cannot be null");
- Assert.hasText(startDelimiterString, "startDelimiterString cannot be null or empty");
- Assert.hasText(endDelimiterString, "endDelimiterString cannot be null or empty");
- this.startDelimiterString = startDelimiterString;
- this.endDelimiterString = endDelimiterString;
- this.useStringDelimiters = true;
- // For string delimiters, we use temporary single-char delimiters internally
- this.startDelimiterToken = TEMP_START_DELIMITER;
- this.endDelimiterToken = TEMP_END_DELIMITER;
- this.validationMode = validationMode;
- this.validateStFunctions = validateStFunctions;
- }
-
- @Override
- public String apply(String template, Map variables) {
- Assert.hasText(template, "template cannot be null or empty");
- Assert.notNull(variables, "variables cannot be null");
- Assert.noNullElements(variables.keySet(), "variables keys cannot be null");
-
- ST st = createST(template);
- for (Map.Entry entry : variables.entrySet()) {
- st.add(entry.getKey(), entry.getValue());
- }
- if (this.validationMode != ValidationMode.NONE) {
- validate(st, variables);
- }
- String result = st.render();
- // Restore protected JSON content in the result
- if (!this.useStringDelimiters) {
- result = restoreJsonContentInResult(result);
- }
- return result;
- }
-
- private ST createST(String template) {
- try {
- String processedTemplate = template;
- // If using string delimiters, convert them to single-char delimiters for ST
- if (this.useStringDelimiters) {
- processedTemplate = convertStringDelimitersToChar(template);
- }
- else {
- // For single-char delimiters, protect JSON content to avoid conflicts
- processedTemplate = protectJsonContent(template);
- }
- STGroup group = new STGroup(this.startDelimiterToken, this.endDelimiterToken);
- group.setListener(new Slf4jStErrorListener(logger));
- return new ST(group, processedTemplate);
- }
- catch (Exception ex) {
- throw new IllegalArgumentException("The template string is not valid.", ex);
- }
- }
-
- // Temporary placeholders for JSON braces
- private static final String JSON_OPEN_PLACEHOLDER = "\uE000";
- private static final String JSON_CLOSE_PLACEHOLDER = "\uE001";
-
- /**
- * Protects JSON content in templates when using single-character delimiters.
- * This method identifies JSON objects/arrays and replaces their braces with placeholders
- * to prevent StringTemplate from treating them as template variables.
- * @param template the original template
- * @return template with JSON braces protected
- */
- private String protectJsonContent(String template) {
- StringBuilder result = new StringBuilder();
- int i = 0;
- int len = template.length();
-
- while (i < len) {
- // Look for potential JSON start: { followed by quote or whitespace+quote
- int braceIdx = template.indexOf(this.startDelimiterToken, i);
- if (braceIdx == -1) {
- result.append(template.substring(i));
- break;
- }
-
- // Append text before the brace
- result.append(template.substring(i, braceIdx));
-
- // Check if this is a template variable or JSON content
- int afterBrace = braceIdx + 1;
- if (afterBrace < len) {
- char nextChar = template.charAt(afterBrace);
- // If followed by a valid identifier start (letter, underscore, $), it's a template variable
- boolean isTemplateVar = (Character.isLetter(nextChar) || nextChar == '_' || nextChar == '$');
-
- if (!isTemplateVar) {
- // Check if it looks like JSON: { followed by quote, whitespace+quote, or other JSON chars
- boolean looksLikeJson = false;
- if (nextChar == '"' || nextChar == '\'' || nextChar == '[' || nextChar == '{') {
- looksLikeJson = true;
- }
- else if (Character.isWhitespace(nextChar)) {
- // Check if whitespace is followed by a quote (JSON-like)
- int nextNonWhitespace = afterBrace + 1;
- while (nextNonWhitespace < len && Character.isWhitespace(template.charAt(nextNonWhitespace))) {
- nextNonWhitespace++;
- }
- if (nextNonWhitespace < len) {
- char afterWhitespace = template.charAt(nextNonWhitespace);
- if (afterWhitespace == '"' || afterWhitespace == '\'' || afterWhitespace == '[') {
- looksLikeJson = true;
- }
- }
- }
-
- if (looksLikeJson) {
- // This looks like JSON, find the matching closing brace
- int closeBraceIdx = findMatchingJsonBrace(template, afterBrace);
- if (closeBraceIdx != -1) {
- // Replace JSON braces with placeholders
- result.append(JSON_OPEN_PLACEHOLDER);
- result.append(template.substring(afterBrace, closeBraceIdx));
- result.append(JSON_CLOSE_PLACEHOLDER);
- i = closeBraceIdx + 1;
- continue;
- }
- }
- }
- }
-
- // Not JSON, keep as-is (it's a template variable)
- result.append(this.startDelimiterToken);
- i = braceIdx + 1;
- }
-
- return result.toString();
- }
-
- /**
- * Finds the matching closing brace for a JSON object/array, handling nested structures.
- * @param template the template string
- * @param startPos the position after the opening brace
- * @return the index of the matching closing brace, or -1 if not found
- */
- private int findMatchingJsonBrace(String template, int startPos) {
- int depth = 1;
- int i = startPos;
- int len = template.length();
- boolean inString = false;
- char stringChar = 0;
-
- while (i < len && depth > 0) {
- char ch = template.charAt(i);
-
- // Handle string literals
- if (!inString && (ch == '"' || ch == '\'')) {
- inString = true;
- stringChar = ch;
- }
- else if (inString && ch == stringChar) {
- // Check if it's escaped
- if (i == 0 || template.charAt(i - 1) != '\\') {
- inString = false;
- stringChar = 0;
- }
- }
-
- if (!inString) {
- if (ch == this.startDelimiterToken) {
- depth++;
- }
- else if (ch == this.endDelimiterToken) {
- depth--;
- if (depth == 0) {
- return i;
- }
- }
- }
-
- i++;
- }
-
- return -1;
- }
-
- /**
- * Restores protected JSON content in the rendered result by replacing placeholders back to braces.
- * @param result the rendered result string
- * @return result with JSON braces restored
- */
- private String restoreJsonContentInResult(String result) {
- return result.replace(JSON_OPEN_PLACEHOLDER, String.valueOf(this.startDelimiterToken))
- .replace(JSON_CLOSE_PLACEHOLDER, String.valueOf(this.endDelimiterToken));
- }
-
- /**
- * Converts string-based delimiters (e.g., "{{" and "}}") to single-character delimiters
- * for StringTemplate processing. This allows support for multi-character delimiters while
- * working with StringTemplate V4's char-based API.
- *
- * The conversion uses a pattern matching approach to identify template variables while
- * avoiding conflicts with literal text that might contain the delimiter strings.
- * This method handles StringTemplate expressions including:
- *
- * Simple variables: {{name}}
- * Property access: {{user.name}}
- * Function calls: {{first(items)}}
- * Conditional expressions: {{name ?: "default"}}
- * List operations: {{items; separator=", "}}
- *
- * @param template the original template with string delimiters
- * @return the template with converted single-character delimiters
- */
- private String convertStringDelimitersToChar(String template) {
- StringBuilder result = new StringBuilder();
- int i = 0;
- int len = template.length();
- int startLen = this.startDelimiterString.length();
- int endLen = this.endDelimiterString.length();
-
- while (i < len) {
- // Look for start delimiter
- int startIdx = template.indexOf(this.startDelimiterString, i);
- if (startIdx == -1) {
- // No more start delimiters, append the rest
- result.append(template.substring(i));
- break;
- }
-
- // Append text before the start delimiter
- result.append(template.substring(i, startIdx));
-
- // Check if this is a valid template variable start
- // A valid start should be followed by an identifier or StringTemplate expression
- int afterStart = startIdx + startLen;
- if (afterStart < len) {
- char nextChar = template.charAt(afterStart);
- // Check if next character is a valid identifier start (letter, underscore, $, or whitespace for expressions)
- // Also allow whitespace after delimiter for expressions like "{{ name }}"
- if (Character.isLetter(nextChar) || nextChar == '_' || nextChar == '$'
- || Character.isWhitespace(nextChar)) {
- // This looks like a template variable, find the matching end delimiter
- // We need to handle nested delimiters and balanced matching
- int endIdx = findMatchingEndDelimiter(template, afterStart, startLen, endLen);
- if (endIdx != -1) {
- // Found matching end delimiter
- // Extract the variable content
- String variableContent = template.substring(afterStart, endIdx);
- // Trim whitespace if needed, but preserve internal structure
- variableContent = variableContent.trim();
- // Convert to single-char delimiter format
- result.append(this.startDelimiterToken);
- result.append(variableContent);
- result.append(this.endDelimiterToken);
- i = endIdx + endLen;
- continue;
- }
- }
- }
-
- // Not a valid template variable, keep the original delimiter as-is
- result.append(this.startDelimiterString);
- i = startIdx + startLen;
- }
-
- return result.toString();
- }
-
- /**
- * Finds the matching end delimiter for a template expression, handling nested delimiters
- * and balanced matching.
- * @param template the template string
- * @param startPos the position after the start delimiter
- * @param startLen the length of the start delimiter string
- * @param endLen the length of the end delimiter string
- * @return the index of the matching end delimiter, or -1 if not found
- */
- private int findMatchingEndDelimiter(String template, int startPos, int startLen, int endLen) {
- int depth = 1; // We've already found one start delimiter
- int i = startPos;
- int len = template.length();
- boolean inString = false;
- char stringChar = 0;
-
- while (i < len) {
- // Check for string delimiters (single or double quotes)
- if (!inString) {
- char ch = template.charAt(i);
- if (ch == '"' || ch == '\'') {
- inString = true;
- stringChar = ch;
- i++;
- continue;
- }
- }
- else {
- char ch = template.charAt(i);
- if (ch == stringChar && (i == 0 || template.charAt(i - 1) != '\\')) {
- inString = false;
- stringChar = 0;
- i++;
- continue;
- }
- i++;
- continue;
- }
-
- // Check for nested start delimiter
- if (i + startLen <= len) {
- String potentialStart = template.substring(i, i + startLen);
- if (potentialStart.equals(this.startDelimiterString)) {
- depth++;
- i += startLen;
- continue;
- }
- }
-
- // Check for end delimiter
- if (i + endLen <= len) {
- String potentialEnd = template.substring(i, i + endLen);
- if (potentialEnd.equals(this.endDelimiterString)) {
- depth--;
- if (depth == 0) {
- return i;
- }
- i += endLen;
- continue;
- }
- }
-
- i++;
- }
-
- return -1; // No matching end delimiter found
- }
-
- /**
- * Validates that all required template variables are provided in the model. Returns
- * the set of missing variables for further handling or logging.
- * @param st the StringTemplate instance
- * @param templateVariables the provided variables
- * @return set of missing variable names, or empty set if none are missing
- */
- private Set validate(ST st, Map templateVariables) {
- Set templateTokens = getInputVariables(st);
- Set modelKeys = templateVariables.keySet();
- Set missingVariables = new HashSet<>(templateTokens);
- missingVariables.removeAll(modelKeys);
-
- if (!missingVariables.isEmpty()) {
- if (this.validationMode == ValidationMode.WARN) {
- logger.warn(VALIDATION_MESSAGE.formatted(missingVariables));
- }
- else if (this.validationMode == ValidationMode.THROW) {
- throw new IllegalStateException(VALIDATION_MESSAGE.formatted(missingVariables));
- }
- }
- return missingVariables;
- }
-
- private Set getInputVariables(ST st) {
- TokenStream tokens = st.impl.tokens;
- Set inputVariables = new HashSet<>();
- boolean isInsideList = false;
-
- for (int i = 0; i < tokens.size(); i++) {
- Token token = tokens.get(i);
-
- // Handle list variables with option (e.g., {items; separator=", "})
- if (token.getType() == STLexer.LDELIM && i + 1 < tokens.size()
- && tokens.get(i + 1).getType() == STLexer.ID) {
- if (i + 2 < tokens.size() && tokens.get(i + 2).getType() == STLexer.COLON) {
- String text = tokens.get(i + 1).getText();
- if (!org.stringtemplate.v4.compiler.Compiler.funcs.containsKey(text) || this.validateStFunctions) {
- inputVariables.add(text);
- isInsideList = true;
- }
- }
- }
- else if (token.getType() == STLexer.RDELIM) {
- isInsideList = false;
- }
- // Handle regular variables - only add IDs that are at the start of an
- // expression
- else if (!isInsideList && token.getType() == STLexer.ID) {
- // Check if this ID is a function call
- boolean isFunctionCall = (i + 1 < tokens.size() && tokens.get(i + 1).getType() == STLexer.LPAREN);
-
- // Check if this ID is at the beginning of an expression (not a property
- // access)
- boolean isAfterDot = (i > 0 && tokens.get(i - 1).getType() == STLexer.DOT);
-
- // Only add IDs that are:
- // 1. Not function calls
- // 2. Not property values (not preceded by a dot)
- // 3. Either not built-in functions or we're validating functions
- if (!isFunctionCall && !isAfterDot) {
- String varName = token.getText();
- if (!Compiler.funcs.containsKey(varName) || this.validateStFunctions) {
- inputVariables.add(varName);
- }
- }
- }
- }
- return inputVariables;
- }
-
- public static SaaStTemplateRenderer.Builder builder() {
- return new SaaStTemplateRenderer.Builder();
- }
-
- /**
- * Builder for configuring and creating {@link SaaStTemplateRenderer} instances.
- */
- public static final class Builder {
-
- private char startDelimiterToken = DEFAULT_START_DELIMITER_TOKEN;
-
- private char endDelimiterToken = DEFAULT_END_DELIMITER_TOKEN;
-
- private String startDelimiterString = DEFAULT_START_DELIMITER_STRING;
-
- private String endDelimiterString = DEFAULT_END_DELIMITER_STRING;
-
- private boolean useStringDelimiters = false;
-
- private ValidationMode validationMode = DEFAULT_VALIDATION_MODE;
-
- private boolean validateStFunctions = DEFAULT_VALIDATE_ST_FUNCTIONS;
-
- private Builder() {
- }
-
- /**
- * Sets the character used as the start delimiter for template expressions.
- * Default is '{'.
- * @param startDelimiterToken The start delimiter character.
- * @return This builder instance for chaining.
- */
- public SaaStTemplateRenderer.Builder startDelimiterToken(char startDelimiterToken) {
- this.startDelimiterToken = startDelimiterToken;
- this.startDelimiterString = String.valueOf(startDelimiterToken);
- this.useStringDelimiters = false;
- return this;
- }
-
- /**
- * Sets the character used as the end delimiter for template expressions. Default
- * is '}'.
- * @param endDelimiterToken The end delimiter character.
- * @return This builder instance for chaining.
- */
- public SaaStTemplateRenderer.Builder endDelimiterToken(char endDelimiterToken) {
- this.endDelimiterToken = endDelimiterToken;
- this.endDelimiterString = String.valueOf(endDelimiterToken);
- this.useStringDelimiters = false;
- return this;
- }
-
- /**
- * Sets the string used as the start delimiter for template expressions.
- * This allows using multi-character delimiters (e.g., "{{") which is useful
- * for avoiding conflicts with JSON content or other text that uses single-character
- * delimiters.
- *
- * When string delimiters are set, they take precedence over character delimiters.
- * @param startDelimiterString The start delimiter string (e.g., "{{").
- * @return This builder instance for chaining.
- */
- public SaaStTemplateRenderer.Builder startDelimiter(String startDelimiterString) {
- Assert.hasText(startDelimiterString, "startDelimiterString cannot be null or empty");
- this.startDelimiterString = startDelimiterString;
- this.useStringDelimiters = true;
- return this;
- }
-
- /**
- * Sets the string used as the end delimiter for template expressions.
- * This allows using multi-character delimiters (e.g., "}}") which is useful
- * for avoiding conflicts with JSON content or other text that uses single-character
- * delimiters.
- *
- * When string delimiters are set, they take precedence over character delimiters.
- * @param endDelimiterString The end delimiter string (e.g., "}}").
- * @return This builder instance for chaining.
- */
- public SaaStTemplateRenderer.Builder endDelimiter(String endDelimiterString) {
- Assert.hasText(endDelimiterString, "endDelimiterString cannot be null or empty");
- this.endDelimiterString = endDelimiterString;
- this.useStringDelimiters = true;
- return this;
- }
-
- /**
- * Sets the validation mode to control behavior when the provided variables do not
- * match the variables required by the template. Default is
- * {@link ValidationMode#THROW}.
- * @param validationMode The desired validation mode.
- * @return This builder instance for chaining.
- */
- public SaaStTemplateRenderer.Builder validationMode(ValidationMode validationMode) {
- this.validationMode = validationMode;
- return this;
- }
-
- /**
- * Configures the renderer to support StringTemplate's built-in functions during
- * validation.
- *
- * When enabled (set to true), identifiers in the template that match known ST
- * function names (e.g., "first", "rest", "length") will not be treated as
- * required input variables during validation.
- *
- * When disabled (default, false), these identifiers are treated like regular
- * variables and must be provided in the input map if validation is enabled
- * ({@link ValidationMode#WARN} or {@link ValidationMode#THROW}).
- * @return This builder instance for chaining.
- */
- public SaaStTemplateRenderer.Builder validateStFunctions() {
- this.validateStFunctions = true;
- return this;
- }
-
- /**
- * Builds and returns a new {@link SaaStTemplateRenderer} instance with the
- * configured settings.
- * @return A configured {@link SaaStTemplateRenderer}.
- */
- public SaaStTemplateRenderer build() {
- if (this.useStringDelimiters) {
- return new SaaStTemplateRenderer(this.startDelimiterString, this.endDelimiterString, this.validationMode,
- this.validateStFunctions);
- }
- else {
- return new SaaStTemplateRenderer(this.startDelimiterToken, this.endDelimiterToken, this.validationMode,
- this.validateStFunctions);
- }
- }
-
- }
-
-}
diff --git a/agentic-ai-agent-framework/src/main/java/io/github/agentic/spring/ai/graph/agent/tools/task/TaskTool.java b/agentic-ai-agent-framework/src/main/java/io/github/agentic/spring/ai/graph/agent/tools/task/TaskTool.java
deleted file mode 100644
index cd1db7a85..000000000
--- a/agentic-ai-agent-framework/src/main/java/io/github/agentic/spring/ai/graph/agent/tools/task/TaskTool.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.agent.tools.task;
-
-import io.github.agentic.spring.ai.graph.agent.ReactAgent;
-import com.fasterxml.jackson.annotation.JsonClassDescription;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyDescription;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.ai.chat.messages.AssistantMessage;
-import org.springframework.ai.chat.model.ToolContext;
-import org.springframework.ai.tool.ToolCallback;
-import org.springframework.ai.tool.function.FunctionToolCallback;
-import org.springframework.util.Assert;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-import java.util.function.BiFunction;
-
-/**
- * Tool that enables invoking sub-agents to handle complex, isolated tasks.
- *
- * Inspired by spring ai TaskTool, this allows the main agent to delegate
- * work to specialized sub-agents, each with their own context and capabilities.
- * Supports both synchronous and background execution.
- */
-public class TaskTool implements BiFunction {
-
- private static final Logger logger = LoggerFactory.getLogger(TaskTool.class);
-
- // @formatter:off
- public static final String DEFAULT_DESCRIPTION = """
- Launch a specialized sub-agent to handle complex, multi-step tasks autonomously.
-
- Use this tool when:
- - The task requires exploring codebases, researching, or multi-step execution
- - You need to delegate to an agent with specific expertise (e.g., Explore, general-purpose)
- - The task would consume too much context if done directly
-
- Available sub-agent types and their capabilities:
- %s
-
- Parameters:
- - description: Short (3-5 word) summary of what the agent will do
- - prompt: The detailed task for the sub-agent to perform
- - subagent_type: The type of specialized agent to use (required)
- - run_in_background: Set to true to run asynchronously; use TaskOutput tool to retrieve results later
-
- When run_in_background=true, returns a task_id. Use the TaskOutput tool with that task_id to get results.
- """;
- // @formatter:on
-
- private final Map subAgents;
-
- private final TaskRepository taskRepository;
-
- public TaskTool(Map subAgents, TaskRepository taskRepository) {
- Assert.notEmpty(subAgents, "subAgents must not be empty");
- Assert.notNull(taskRepository, "taskRepository must not be null");
- this.subAgents = Map.copyOf(subAgents);
- this.taskRepository = taskRepository;
- }
-
- @Override
- public String apply(Request request, ToolContext toolContext) {
- String subagentType = request.subagentType();
- if (!StringUtils.hasText(subagentType)) {
- return "Error: subagent_type is required";
- }
-
- if (!subAgents.containsKey(subagentType)) {
- return "Error: Unknown subagent type: " + subagentType + ". Allowed types: " + subAgents.keySet();
- }
-
- ReactAgent subAgent = subAgents.get(subagentType);
- String prompt = request.prompt();
- if (!StringUtils.hasText(prompt)) {
- return "Error: prompt is required";
- }
-
- if (Boolean.TRUE.equals(request.runInBackground())) {
- String taskId = "task_" + UUID.randomUUID();
- this.taskRepository.putTask(taskId, () -> executeSubAgent(subAgent, prompt));
- return String.format(
- "task_id: %s%n%nBackground task started. Use TaskOutput tool with task_id='%s' to retrieve results.",
- taskId, taskId);
- }
-
- return executeSubAgent(subAgent, prompt);
- }
-
- private String executeSubAgent(ReactAgent subAgent, String prompt) {
- try {
- AssistantMessage result = subAgent.call(prompt);
- return result != null ? result.getText() : "Sub-agent returned empty response";
- }
- catch (Exception e) {
- logger.warn("Sub-agent execution failed: {}", e.getMessage());
- return "Error executing sub-agent: " + e.getMessage();
- }
- }
-
- /**
- * Request structure for the Task tool.
- */
- @JsonClassDescription("Request to launch a sub-agent task")
- public record Request(
- @JsonProperty(required = true)
- @JsonPropertyDescription("Short (3-5 word) description of what the agent will do")
- String description,
-
- @JsonProperty(required = true)
- @JsonPropertyDescription("The detailed task for the sub-agent to perform")
- String prompt,
-
- @JsonProperty(required = true, value = "subagent_type")
- @JsonPropertyDescription("The type of specialized agent to use")
- String subagentType,
-
- @JsonProperty(value = "run_in_background")
- @JsonPropertyDescription("Set to true to run in background; use TaskOutput to retrieve results")
- Boolean runInBackground) {
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private final Map subAgents = new HashMap<>();
-
- private TaskRepository taskRepository = new DefaultTaskRepository();
-
- private String name = "Task";
-
- private String description;
-
- public Builder subAgent(String type, ReactAgent agent) {
- Assert.hasText(type, "type must not be empty");
- Assert.notNull(agent, "agent must not be null");
- this.subAgents.put(type, agent);
- return this;
- }
-
- public Builder subAgents(Map agents) {
- if (!CollectionUtils.isEmpty(agents)) {
- this.subAgents.putAll(agents);
- }
- return this;
- }
-
- public Builder taskRepository(TaskRepository taskRepository) {
- Assert.notNull(taskRepository, "taskRepository must not be null");
- this.taskRepository = taskRepository;
- return this;
- }
-
- public Builder withName(String name) {
- this.name = name != null ? name : "Task";
- return this;
- }
-
- public Builder withDescription(String description) {
- this.description = description;
- return this;
- }
-
- public ToolCallback build() {
- Assert.notEmpty(this.subAgents, "At least one sub-agent must be configured");
-
- String desc = this.description;
- if (!StringUtils.hasText(desc)) {
- String agentList = this.subAgents.entrySet().stream()
- .map(e -> "- " + e.getKey() + ": " + e.getValue().description())
- .reduce("", (a, b) -> a + b + "\n");
- desc = DEFAULT_DESCRIPTION.formatted(agentList);
- }
-
- TaskTool taskTool = new TaskTool(this.subAgents, this.taskRepository);
- return FunctionToolCallback.builder(this.name, taskTool)
- .description(desc)
- .inputType(Request.class)
- .build();
- }
- }
-
-}
diff --git a/agentic-ai-agent-framework/src/test/java/io/github/agentic/spring/ai/graph/agent/renderer/SaaStTemplateRendererTest.java b/agentic-ai-agent-framework/src/test/java/io/github/agentic/spring/ai/graph/agent/renderer/SaaStTemplateRendererTest.java
deleted file mode 100644
index ff97e2e5e..000000000
--- a/agentic-ai-agent-framework/src/test/java/io/github/agentic/spring/ai/graph/agent/renderer/SaaStTemplateRendererTest.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*
- * Copyright 2024-2025 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.agent.renderer;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.ai.template.ValidationMode;
-
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-/**
- * Unit tests for {@link SaaStTemplateRenderer}.
- *
- * @author Spring AI Alibaba
- */
-class SaaStTemplateRendererTest {
-
- @Test
- void testBasicCharDelimiter() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiterToken('{')
- .endDelimiterToken('}')
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Hello {name}!";
- Map variables = Map.of("name", "World");
-
- String result = renderer.apply(template, variables);
- assertEquals("Hello World!", result);
- }
-
- @Test
- void testStringDelimiter() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Hello {{name}}!";
- Map variables = Map.of("name", "World");
-
- String result = renderer.apply(template, variables);
- assertEquals("Hello World!", result);
- }
-
- @Test
- void testJsonContentWithStringDelimiter() {
- // 测试使用多字符 delimiter 来避免与 JSON 内容冲突
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = """
- 请处理以下 JSON 数据:{"name": "test", "value": 123}
- 用户信息:{{userName}}
- 数据内容:{{jsonData}}
- """;
-
- Map variables = Map.of(
- "userName", "张三",
- "jsonData", "{\"key\": \"value\"}"
- );
-
- String result = renderer.apply(template, variables);
-
- // 验证 JSON 中的 {} 没有被替换
- assertTrue(result.contains("{\"name\": \"test\", \"value\": 123}"));
- // 验证模板变量被正确替换
- assertTrue(result.contains("用户信息:张三"));
- assertTrue(result.contains("数据内容:{\"key\": \"value\"}"));
- }
-
- @Test
- void testJsonContentConflictWithSingleCharDelimiter() {
- // 测试单字符 delimiter 与 JSON 内容冲突的情况
- // 实现应该能够自动识别并保护 JSON 内容,避免与模板变量冲突
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiterToken('{')
- .endDelimiterToken('}')
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = """
- 请处理以下 JSON 数据:{"name": "test", "value": 123}
- 用户信息:{userName}
- """;
-
- Map variables = Map.of("userName", "张三");
-
- // 实现应该能够识别 JSON 内容并保护它,同时正确替换模板变量
- String result = renderer.apply(template, variables);
-
- // 验证 JSON 内容被保护(没有被误替换)
- assertTrue(result.contains("{\"name\": \"test\", \"value\": 123}"));
- // 验证模板变量被正确替换
- assertTrue(result.contains("用户信息:张三"));
- }
-
- @Test
- void testComplexJsonWithStringDelimiter() {
- // 测试复杂的 JSON 内容与模板变量混合
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = """
- {
- "request": {
- "user": "{{userName}}",
- "data": {"key": "value", "count": {{count}}},
- "metadata": {"type": "test", "nested": {"level": 2}}
- },
- "response": "{{responseText}}"
- }
- """;
-
- Map variables = Map.of(
- "userName", "Alice",
- "count", "42",
- "responseText", "Success"
- );
-
- String result = renderer.apply(template, variables);
-
- // 验证变量被正确替换
- assertTrue(result.contains("\"user\": \"Alice\""));
- assertTrue(result.contains("\"count\": 42"));
- assertTrue(result.contains("\"response\": \"Success\""));
- // 验证 JSON 结构中的普通 {} 没有被误替换
- assertTrue(result.contains("\"metadata\": {\"type\": \"test\""));
- }
-
- @Test
- void testNestedDelimiters() {
- // 测试嵌套的 delimiter
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Outer: {{outer}}, Inner JSON: {\"key\": \"{{value}}\"}";
- Map variables = Map.of(
- "outer", "OUTER_VALUE",
- "value", "VALUE"
- );
-
- String result = renderer.apply(template, variables);
- assertTrue(result.contains("Outer: OUTER_VALUE"));
- assertTrue(result.contains("\"key\": \"VALUE\""));
- }
-
- @Test
- void testPropertyAccess() {
- // 测试属性访问
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- Map user = Map.of("name", "John", "age", 30);
- String template = "User: {{user.name}}, Age: {{user.age}}";
- Map variables = Map.of("user", user);
-
- String result = renderer.apply(template, variables);
- assertTrue(result.contains("User: John"));
- assertTrue(result.contains("Age: 30"));
- }
-
- @Test
- void testMultipleVariables() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "{{greeting}} {{name}}, today is {{day}}";
- Map variables = Map.of(
- "greeting", "Hello",
- "name", "Alice",
- "day", "Monday"
- );
-
- String result = renderer.apply(template, variables);
- assertEquals("Hello Alice, today is Monday", result);
- }
-
- @Test
- void testValidationModeThrow() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.THROW)
- .build();
-
- String template = "Hello {{name}}, missing: {{missing}}";
- Map variables = Map.of("name", "World");
-
- assertThrows(IllegalStateException.class, () -> {
- renderer.apply(template, variables);
- });
- }
-
- @Test
- void testValidationModeWarn() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.WARN)
- .build();
-
- String template = "Hello {{name}}, missing: {{missing}}";
- Map variables = Map.of("name", "World");
-
- // Should not throw, but log warning
- String result = renderer.apply(template, variables);
- assertTrue(result.contains("Hello World"));
- }
-
- @Test
- void testValidationModeNone() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Hello {{name}}, missing: {{missing}}";
- Map variables = Map.of("name", "World");
-
- // Should not throw
- String result = renderer.apply(template, variables);
- assertTrue(result.contains("Hello World"));
- }
-
- @Test
- void testJsonArrayWithStringDelimiter() {
- // 测试包含 JSON 数组的情况
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = """
- {
- "items": [{"id": 1, "name": "item1"}, {"id": 2, "name": "item2"}],
- "user": "{{userName}}",
- "count": {{count}}
- }
- """;
-
- Map variables = Map.of(
- "userName", "Bob",
- "count", "10"
- );
-
- String result = renderer.apply(template, variables);
-
- // 验证 JSON 数组中的 {} 没有被误替换
- assertTrue(result.contains("\"items\": [{\"id\": 1"));
- // 验证模板变量被正确替换
- assertTrue(result.contains("\"user\": \"Bob\""));
- assertTrue(result.contains("\"count\": 10"));
- }
-
- @Test
- void testMixedContent() {
- // 测试混合内容:既有 JSON,又有普通文本和模板变量
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = """
- 用户 {{userName}} 提交了以下数据:
- {"type": "request", "data": {"key": "value"}}
- 处理结果:{{result}}
- 时间:{{timestamp}}
- """;
-
- Map variables = Map.of(
- "userName", "Charlie",
- "result", "Success",
- "timestamp", "2024-01-01"
- );
-
- String result = renderer.apply(template, variables);
-
- // 验证所有变量都被替换
- assertTrue(result.contains("用户 Charlie 提交了以下数据:"));
- assertTrue(result.contains("处理结果:Success"));
- assertTrue(result.contains("时间:2024-01-01"));
- // 验证 JSON 内容保持不变
- assertTrue(result.contains("{\"type\": \"request\""));
- }
-
- @Test
- void testBuilderWithCharDelimiters() {
- // 测试 Builder 使用 char delimiter
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiterToken('<')
- .endDelimiterToken('>')
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Hello !";
- Map variables = Map.of("name", "World");
-
- String result = renderer.apply(template, variables);
- assertEquals("Hello World!", result);
- }
-
- @Test
- void testBuilderWithStringDelimiters() {
- // 测试 Builder 使用 String delimiter
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("<<")
- .endDelimiter(">>")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Hello <>!";
- Map variables = Map.of("name", "World");
-
- String result = renderer.apply(template, variables);
- assertEquals("Hello World!", result);
- }
-
- @Test
- void testEmptyTemplate() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "";
- Map variables = Map.of();
-
- assertThrows(IllegalArgumentException.class, () -> {
- renderer.apply(template, variables);
- });
- }
-
- @Test
- void testNullVariables() {
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = "Hello {{name}}!";
-
- assertThrows(IllegalArgumentException.class, () -> {
- renderer.apply(template, null);
- });
- }
-
- @Test
- void testComplexNestedJson() {
- // 测试复杂的嵌套 JSON 结构
- SaaStTemplateRenderer renderer = SaaStTemplateRenderer.builder()
- .startDelimiter("{{")
- .endDelimiter("}}")
- .validationMode(ValidationMode.NONE)
- .build();
-
- String template = """
- {
- "level1": {
- "level2": {
- "level3": {
- "value": "{{value}}",
- "items": [{"a": 1}, {"b": 2}]
- }
- },
- "user": "{{userName}}"
- }
- }
- """;
-
- Map variables = Map.of(
- "value", "test",
- "userName", "User"
- );
-
- String result = renderer.apply(template, variables);
-
- // 验证深层嵌套的变量被替换
- assertTrue(result.contains("\"value\": \"test\""));
- assertTrue(result.contains("\"user\": \"User\""));
- // 验证 JSON 结构完整
- assertTrue(result.contains("\"level3\": {"));
- assertTrue(result.contains("\"items\": [{\"a\": 1}"));
- }
-
-}
-
diff --git a/agentic-ai-agent-framework/src/test/java/io/github/agentic/spring/ai/graph/agent/tools/PoetTool.java b/agentic-ai-agent-framework/src/test/java/io/github/agentic/spring/ai/graph/agent/tools/PoetTool.java
deleted file mode 100644
index 25660e87d..000000000
--- a/agentic-ai-agent-framework/src/test/java/io/github/agentic/spring/ai/graph/agent/tools/PoetTool.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.agent.tools;
-
-import org.springframework.ai.chat.model.ToolContext;
-import org.springframework.ai.tool.ToolCallback;
-import org.springframework.ai.tool.annotation.ToolParam;
-import org.springframework.ai.tool.function.FunctionToolCallback;
-
-import java.util.function.BiFunction;
-
-public class PoetTool implements BiFunction {
- public int count = 0;
-
- public PoetTool() {
- }
-
- @Override
- public String apply(
- @ToolParam(description = "The original user query that triggered this tool call") String originalUserQuery,
- ToolContext toolContext) {
- count++;
- System.out.println("Poet tool called : " + originalUserQuery);
- return "在城市的缝隙里, \n" + "一束光悄悄发芽, \n" + "穿过钢筋水泥的沉默, \n" + "在风中轻轻说话。 \n" + "\n" + "夜色如墨,却不再黑, \n"
- + "星星点亮了每一个角落, \n" + "我站在时间的边缘, \n" + "等一朵云,轻轻落下";
- }
-
- public static ToolCallback createPoetToolCallback() {
- return FunctionToolCallback.builder("poem", new PoetTool())
- .description("用来写诗的工具")
- .inputType(String.class)
- .build();
- }
-
- public static ToolCallback createPoetToolCallback(String name, PoetTool poetTool) {
- return FunctionToolCallback.builder(name, poetTool)
- .description("用来写诗的工具")
- .inputType(String.class)
- .build();
- }
-
-}
diff --git a/agentic-ai-agent-framework/src/test/resources/logback-test.xml b/agentic-ai-agent-framework/src/test/resources/logback-test.xml
deleted file mode 100644
index 340307c98..000000000
--- a/agentic-ai-agent-framework/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
-
-
-
diff --git a/agentic-ai-bom/pom.xml b/agentic-ai-bom/pom.xml
deleted file mode 100644
index 3fc03d688..000000000
--- a/agentic-ai-bom/pom.xml
+++ /dev/null
@@ -1,531 +0,0 @@
-
-
-
- 4.0.0
-
- io.github.agentic-spring-ai
- agentic-spring-ai-bom
- ${revision}
-
- pom
-
- Agentic AI Bom
- https://github.com/agentic-spring-ai/agentic-spring-ai
- Bill of Materials POM (BOM) for the Agentic AI modules
-
-
-
- https://github.com/agentic-spring-ai/agentic-spring-ai
- git://github.com/agentic-spring-ai/agentic-spring-ai.git
- git@github.com:agentic-spring-ai/agentic-spring-ai.git
-
-
-
- Github Issues
- https://github.com/agentic-spring-ai/agentic-spring-ai/issues
-
-
- Github Actions
- https://github.com/agentic-spring-ai/agentic-spring-ai/actions
-
-
-
- Apache 2.0
- https://www.apache.org/licenses/LICENSE-2.0.txt
- repo
-
-
-
-
-
- yuluo-yx
- yuluo-yx
- https://github.com/yuluo-yx
-
-
- Aias00
- Aias00
- https://github.com/Aias00
-
-
-
-
- 2.1.0-dev
-
-
- 3.16.0
- 3.6.0
- 3.6.0
- 3.12.0
- 3.4.0
- 0.8.15
- 1.8.0
- 3.1.4
- 2.2.3
- 3.7.0
- 3.5.0
- 4.0.0-M16
- 3.4.5
- 3.5.1
- 0.0.48
-
-
- 0.11.0
-
-
-
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai-starter-graph-observation
- ${project.version}
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai-starter-builtin-nodes
- ${project.version}
-
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai-agent-framework
- ${project.version}
-
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai-graph-core
- ${project.version}
-
-
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai-studio
- ${project.version}
-
-
-
-
-
-
-
-
-
- io.spring.javaformat
- spring-javaformat-maven-plugin
- ${spring-javaformat-maven-plugin.version}
-
- true
-
-
-
- validate
- true
-
- validate
-
-
-
-
-
- org.apache.maven.plugins
- maven-site-plugin
- ${maven-site-plugin.version}
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
- ${java.version}
-
- -parameters
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
- ${surefireArgLine}
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- ${maven-jar-plugin.version}
-
-
-
- ${project.artifactId}
- ${project.version}
-
-
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- ${flatten-maven-plugin.version}
-
-
- flatten
- process-resources
-
- flatten
-
-
- true
- ossrh
-
- remove
- expand
- remove
- keep
- keep
- resolve
-
-
-
-
- clean
- clean
-
- clean
-
-
-
-
-
- com.diffplug.spotless
- spotless-maven-plugin
- 2.46.1
-
-
-
-
-
-
-
- spotless-apply
-
- apply
-
- process-sources
-
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
- ${maven-deploy-plugin.version}
-
-
-
-
-
-
- license
-
- false
-
-
-
-
- com.mycila
- license-maven-plugin
- 4.6
-
-
- validate
-
- check
-
-
-
-
-
- the original author or authors.
-
- 2024
-
- true
-
-
- com/mycila/maven/plugin/license/templates/APACHE-2.txt
-
- **/.antlr/**
- **/aot.factories
- **/.sdkmanrc
- **/*.adoc
- **/*.puml
- **/pom.xml
- **/*.properties
- **/*.yaml
- **/*.yml
- **/*.map
- **/*.html
- **/*.xhtml
- **/*.jsp
- **/*.js
- **/*.css
- **/*.txt
- **/*.xjb
- **/*.ftl
- **/*.xsd
- **/*.xml
- **/*.sh
- **/generated/**
- **/Dockerfile
-
-
-
-
-
-
-
-
-
-
- javadoc
-
- false
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- ${maven-javadoc-plugin.version}
-
-
- org.springframework.ai.sample.*,org.springframework.ai.testcontainers.service.connection.*
-
-
- ${project.basedir}/spring-ai-docs/src/main/javadoc/overview.html
-
- false
- none
-
- true
-
-
-
- generate-javadocs
- package
-
- jar
-
-
-
- generate-aggregate-javadocs
- package
-
- aggregate
-
-
-
-
-
-
-
-
- integration-tests
-
- false
-
-
-
-
- org.apache.maven.plugins
- maven-failsafe-plugin
- ${maven-failsafe-plugin.version}
-
-
-
- integration-test
- verify
-
-
-
-
-
-
-
-
- test-coverage
-
-
-
- org.jacoco
- jacoco-maven-plugin
- ${jacoco-maven-plugin.version}
-
-
- prepare-agent
-
- prepare-agent
-
-
-
- report
-
- report
-
-
-
-
-
-
-
-
- release
-
- 3.2.8
- 1.7.0
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- ${maven-source-plugin.version}
-
-
- package
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- ${maven-javadoc-plugin.version}
-
- none
-
-
-
- package
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- ${maven-gpg-plugin.version}
-
-
- verify
-
- sign
-
-
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- ${flatten-maven-plugin.version}
-
- true
- resolveCiFriendliesOnly
-
-
-
- flatten
- process-resources
-
- flatten
-
-
-
- flatten.clean
- clean
-
- clean
-
-
-
-
-
- org.sonatype.central
- central-publishing-maven-plugin
- ${central.publishing.maven.version}
- true
-
- central
- true
- published
-
-
-
-
-
-
-
- central
- https://central.sonatype.com/repository/maven-snapshots
-
-
-
-
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
- false
-
-
-
- snapshots
- https://central.sonatype.com/repository/maven-snapshots/
-
- false
-
-
- true
- always
-
-
-
- sonatype-snapshots
- Sonatype Snapshot Repository
- https://oss.sonatype.org/content/repositories/snapshots
-
- false
-
-
- true
- always
-
-
-
-
-
diff --git a/agentic-ai-graph-core/README.md b/agentic-ai-graph-core/README.md
deleted file mode 100644
index d7009e57c..000000000
--- a/agentic-ai-graph-core/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# Agentic AI Graph
-
-## What's Agentic AI Graph
-
-Agentic AI Graph is a **workflow and multi-agent framework** for Java developers to build complex applications composed of multiple AI models or steps.
-
-Agentic AI Graph serves as the underlying core engine of the Agent Framework. It provides atomic components for building intelligent agents with interruptible and orchestratable capabilities, offering high flexibility but also relatively high learning costs. In contrast, the Agent Framework is built atop Graph, abstracting away the underlying complexities through concepts like ReactAgent and SequentialAgent.
-
-Please check [the documentation](https://java2ai.com/docs/frameworks/graph-core/quick-start) on official website for more details
-
-## Core Concepts & Classes
-
-Graph is deeply integrated with the Spring Boot ecosystem, providing a declarative API to orchestrate workflows. This allows developers to abstract each step of an AI application as a node (Node) and connect these nodes in the form of a directed graph (Graph) to create a customizable execution flow. Compared to traditional single-agent (one-turn Q&A) solutions, Agentic AI Graph supports more complex multi-step task flows, helping to address the issue of a **single large model being insufficient for complex tasks**.
-
-The core of the framework includes: **StateGraph** (the state graph for defining nodes and edges), **Node** (node, encapsulating a specific operation or model call), **Edge** (edge, representing transitions between nodes), and **OverAllState** (global state, carrying shared data throughout the flow). These designs make it convenient to manage state and control flow in the workflow.
-
-1. StateGraph
- The main class for defining a workflow.
- Lets you add nodes (addNode) and edges (addEdge, addConditionalEdges).
- Supports conditional routing, subgraphs, and validation.
- Can be compiled into a CompiledGraph for execution.
-2. Node
- Represents a single step in the workflow (e.g., a model call, a data transformation).
- Nodes can be asynchronous and can encapsulate LLM calls or custom logic.
-3. Edge
- Represents transitions between nodes.
- Can be conditional, with logic to determine the next node based on the current state.
-4. OverAllState
- A serializable, central state object that holds all workflow data.
- Supports key-based strategies for merging/updating state.
- Used for checkpointing, resuming, and passing data between nodes.
-5. CompiledGraph
- The executable form of a StateGraph.
- Handles the actual execution, state transitions, and streaming of results.
- Supports interruption, parallel nodes, and checkpointing.
-6. InterruptableAction
- Interface for actions that can interrupt graph execution.
- Provides two hook points: `interrupt()` (before execution) and `interruptAfter()` (after execution).
- Useful for human-in-the-loop scenarios, approval workflows, and multi-turn conversations.
-
-## How It's Used (Typical Flow)
-- Define StateGraph: In a Spring configuration, you define a StateGraph bean, add nodes (each encapsulating a model call or logic), and connect them with edges.
-- Configure State: Use an OverAllStateFactory to define the initial state and key strategies.
-- Execution: The graph is compiled and executed, with state flowing through nodes and edges, and conditional logic determining the path.
-- Integration: Typically exposed via a REST controller or service in a Spring Boot app.
-
-## Interruption Support
-
-Agentic AI Graph supports interrupting workflow execution at specific points, enabling human-in-the-loop scenarios.
-
-### InterruptableAction Interface
-
-```java
-public interface InterruptableAction {
- // Called BEFORE node execution - can prevent execution
- Optional interrupt(String nodeId, OverAllState state, RunnableConfig config);
-
- // Called AFTER node execution - can inspect results and interrupt
- default Optional interruptAfter(String nodeId, OverAllState state,
- Map actionResult, RunnableConfig config) {
- return Optional.empty();
- }
-}
-```
-
-### Example Usage
-
-```java
-public class ReviewAction implements AsyncNodeActionWithConfig, InterruptableAction {
-
- @Override
- public CompletableFuture> apply(OverAllState state, RunnableConfig config) {
- return CompletableFuture.completedFuture(Map.of("result", "generated_content"));
- }
-
- @Override
- public Optional interrupt(String nodeId, OverAllState state, RunnableConfig config) {
- return Optional.empty(); // Don't interrupt before execution
- }
-
- @Override
- public Optional interruptAfter(String nodeId, OverAllState state,
- Map actionResult, RunnableConfig config) {
- // Interrupt after execution for human review
- return Optional.of(InterruptionMetadata.builder(nodeId, state)
- .addMetadata("reason", "needs_review")
- .addMetadata("content", actionResult.get("result"))
- .build());
- }
-}
-```
diff --git a/agentic-ai-graph-core/pom.xml b/agentic-ai-graph-core/pom.xml
deleted file mode 100644
index a39de1053..000000000
--- a/agentic-ai-graph-core/pom.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
- 4.0.0
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai
- ${revision}
- ../pom.xml
-
-
- agentic-spring-ai-graph-core
- jar
- Agentic AI Graph Core
- A library for building stateful, multi-agents applications with LLMs
- https://github.com/agentic-spring-ai/agentic-spring-ai
-
- git://github.com/agentic-spring-ai/agentic-spring-ai.git
- git@github.com:agentic-spring-ai/agentic-spring-ai.git
- https://github.com/agentic-spring-ai/agentic-spring-ai
-
-
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jsr310
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jdk8
-
-
-
- org.postgresql
- postgresql
- true
-
-
-
- com.oracle.database.jdbc
- ojdbc11
- true
-
-
- com.oracle.database.jdbc
- ojdbc-provider-jackson-oson
- true
-
-
-
- com.mysql
- mysql-connector-j
- true
-
-
-
- io.projectreactor
- reactor-core
-
-
-
- org.springframework.ai
- spring-ai-commons
-
-
-
- org.springframework.ai
- spring-ai-deepseek
- true
-
-
-
- org.springframework.ai
- spring-ai-client-chat
-
-
-
- org.slf4j
- slf4j-api
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
- org.slf4j
- slf4j-jdk14
- test
-
-
-
- org.redisson
- redisson
- ${redisson.version}
- true
-
-
-
-
- org.mongodb
- mongodb-driver-sync
- true
-
-
-
- io.opentelemetry
- opentelemetry-context
-
-
-
-
- junit
- junit
- test
-
-
-
- org.junit.platform
- junit-platform-launcher
- test
-
-
-
- org.junit.vintage
- junit-vintage-engine
- test
-
-
-
-
- org.testcontainers
- testcontainers
- test
-
-
-
- org.testcontainers
- testcontainers-junit-jupiter
- test
-
-
-
- org.testcontainers
- testcontainers-postgresql
- test
-
-
-
- org.testcontainers
- testcontainers-mysql
- test
-
-
-
- org.testcontainers
- testcontainers-oracle-free
- test
-
-
-
-
- com.h2database
- h2
- test
-
-
-
-
- com.zaxxer
- HikariCP
- test
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
-
-
-
-
-
-
-
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/GraphResponse.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/GraphResponse.java
deleted file mode 100644
index 302d4bfc4..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/GraphResponse.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
-import reactor.core.publisher.Flux;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.CompletableFuture;
-import java.util.function.Supplier;
-
-import static java.util.concurrent.CompletableFuture.completedFuture;
-
-/**
- * Represents a graph element in the Flux.
- *
- * @param the type of the data element
- */
-public class GraphResponse implements Serializable {
-
- private static final Map EMPTY_METADATA = Collections.emptyMap();
-
- @JsonIgnore
- CompletableFuture output;
-
- Object resultValue;
-
- Map metadata = EMPTY_METADATA;
-
- /**
- * Lazy continuation of the graph execution. Executors emit a marker response
- * carrying the next execution step instead of recursively nesting it with
- * {@code concatWith(Flux.defer(...))}; {@link io.github.agentic.spring.ai.graph.GraphRunner}
- * expands these markers iteratively so the reactive operator depth stays constant
- * regardless of how many nodes execute (see issue #4594). Markers are internal and
- * never emitted to downstream consumers.
- */
- @JsonIgnore
- transient Supplier>> continuation;
-
- public GraphResponse(){}
-
- public GraphResponse(CompletableFuture data, Object resultValue) {
- this(data, resultValue, EMPTY_METADATA);
- }
-
- public GraphResponse(CompletableFuture data, Object resultValue, Map metadata) {
- this.output = data;
- this.resultValue = resultValue;
- this.metadata = metadata.isEmpty() ? EMPTY_METADATA : new HashMap<>(metadata);
- }
-
- public static GraphResponse of(CompletableFuture data) {
- return new GraphResponse<>(data, null);
- }
-
- public static GraphResponse of(CompletableFuture data, Map metadata) {
- return new GraphResponse<>(data, null, metadata);
- }
-
- public static GraphResponse of(E data) {
- return new GraphResponse<>(completedFuture(data), null);
- }
-
- public static GraphResponse of(E data, Map metadata) {
- return new GraphResponse<>(completedFuture(data), null, metadata);
- }
-
- public static GraphResponse done() {
- return new GraphResponse<>(null, null);
- }
-
- public static GraphResponse done(Object resultValue) {
- return new GraphResponse<>(null, resultValue);
- }
-
- public static GraphResponse done(Object resultValue, Map metadata) {
- return new GraphResponse<>(null, resultValue, metadata);
- }
-
- public static GraphResponse error(Throwable exception) {
- CompletableFuture future = new CompletableFuture<>();
- future.completeExceptionally(exception);
- return GraphResponse.of(future);
- }
-
- public static GraphResponse error(Throwable exception, Map metadata) {
- CompletableFuture future = new CompletableFuture<>();
- future.completeExceptionally(exception);
- return GraphResponse.of(future, metadata);
- }
-
- /**
- * Creates an internal marker response carrying the next execution step. The supplier
- * is invoked lazily by the runner-level driver once all elements preceding the marker
- * have been emitted, preserving the ordering semantics of the previous recursive
- * {@code concatWith(Flux.defer(...))} chaining without growing the operator chain.
- * @param continuation supplier of the next execution step
- * @param the type of the data element
- * @return a continuation marker response
- */
- public static GraphResponse continueWith(Supplier>> continuation) {
- GraphResponse response = new GraphResponse<>(null, null);
- response.continuation = continuation;
- return response;
- }
-
- public CompletableFuture getOutput() {
- return output;
- }
-
- public Optional resultValue() {
- return resultValue == null ? Optional.empty() : Optional.of(resultValue);
- }
-
- @JsonIgnore
- public boolean isDone() {
- return output == null;
- }
-
- @JsonIgnore
- public Supplier>> getContinuation() {
- return continuation;
- }
-
- @JsonIgnore
- public boolean hasContinuation() {
- return continuation != null;
- }
-
- @JsonIgnore
- public boolean isError() {
- return output != null && output.isCompletedExceptionally();
- }
-
- /**
- * Add metadata with key and value.
- * @param key the metadata key
- * @param value the metadata value
- */
- public void addMetadata(String key, Object value) {
- if (this.metadata.isEmpty()) {
- this.metadata = new HashMap<>();
- }
- this.metadata.put(key, value);
- }
-
- /**
- * Get metadata value by key.
- * @param key the metadata key
- * @return the metadata value, or null if not found
- */
- public Object getMetadata(String key) {
- return this.metadata.get(key);
- }
-
- /**
- * Get metadata value by key with type casting.
- * @param key the metadata key
- * @param type the expected type class
- * @param the expected type
- * @return the metadata value cast to the expected type, or null if not found or
- * cannot be cast
- */
- @SuppressWarnings("unchecked")
- public T getMetadata(String key, Class type) {
- Object value = this.metadata.get(key);
- if (value != null && type.isAssignableFrom(value.getClass())) {
- return (T) value;
- }
- return null;
- }
-
- /**
- * Get all metadata as an immutable map.
- * @return a copy of all metadata
- */
- @JsonIgnore
- public Map getAllMetadata() {
- return new HashMap<>(this.metadata);
- }
-
- /**
- * Check if metadata contains the specified key.
- * @param key the metadata key
- * @return true if the key exists, false otherwise
- */
- public boolean hasMetadata(String key) {
- return this.metadata.containsKey(key);
- }
-
- /**
- * Remove metadata by key.
- * @param key the metadata key
- * @return the previous value associated with the key, or null if no mapping existed
- */
- public Object removeMetadata(String key) {
- if (this.metadata.isEmpty()) {
- return null;
- }
- Object removed = this.metadata.remove(key);
- if (this.metadata.isEmpty()) {
- this.metadata = EMPTY_METADATA;
- }
- return removed;
- }
-
-
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/action/package-info.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/action/package-info.java
deleted file mode 100644
index a0448ada8..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/action/package-info.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Defines the core interfaces and classes for actions that constitute the building blocks
- * of a graph. Actions in this context represent the executable logic associated with
- * graph nodes and the conditional logic that determines transitions along graph edges.
- * They operate on an {@link io.github.agentic.spring.ai.graph.OverAllState} and can optionally
- * interact with a {@link io.github.agentic.spring.ai.graph.RunnableConfig}.
- *
- *
- * This package provides a clear separation between synchronous and asynchronous
- * operations, allowing for flexible graph construction that can accommodate various
- * execution models.
- *
- *
- * Key Components:
- *
- * {@link io.github.agentic.spring.ai.graph.action.NodeAction}: Represents a synchronous
- * operation performed at a node. It takes the current agent state and returns a
- * {@link java.util.Map} representing updates to the state.
- * {@link io.github.agentic.spring.ai.graph.action.NodeActionWithConfig}: Similar to
- * {@code NodeAction}, but also accepts a
- * {@link io.github.agentic.spring.ai.graph.RunnableConfig} parameter, allowing for more
- * configurable node behavior at runtime.
- * {@link io.github.agentic.spring.ai.graph.action.EdgeAction}: Defines synchronous
- * conditional logic for an edge. It evaluates the current agent state and returns a
- * {@link java.lang.String} indicating the name of the next node to transition to, or a
- * special value to end the graph.
- * {@link io.github.agentic.spring.ai.graph.action.CommandAction}: Represents a synchronous
- * action that evaluates the agent state and a
- * {@link io.github.agentic.spring.ai.graph.RunnableConfig} to produce a
- * {@link io.github.agentic.spring.ai.graph.action.Command}. This command encapsulates both
- * potential state updates and the next node to transition to, offering a structured way
- * to define node outcomes.
- * {@link io.github.agentic.spring.ai.graph.action.AsyncNodeAction}: An asynchronous
- * counterpart to {@code NodeAction}. It allows for non-blocking operations at nodes,
- * returning a {@link java.util.concurrent.CompletableFuture} that will eventually provide
- * the {@link java.util.Map} of state updates. This is suitable for I/O-bound tasks or
- * long-running computations.
- * {@link io.github.agentic.spring.ai.graph.action.AsyncEdgeAction}: The asynchronous version
- * of {@code EdgeAction}. It provides a non-blocking way to determine the next path in the
- * graph, returning a {@link java.util.concurrent.CompletableFuture} with the name of the
- * next node or an indication to end.
- *
- *
- *
- * Implementations of these interfaces are fundamental to defining the behavior and flow
- * of control within a stateful agent graph constructed using Graph.
- *
- *
- */
-package io.github.agentic.spring.ai.graph.action;
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/h2/CreateOption.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/h2/CreateOption.java
deleted file mode 100644
index 38f2b1785..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/h2/CreateOption.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.checkpoint.savers.h2;
-
-/**
- * Options which configure the creation of database schema objects, such as
- * tables and indexes.
- *
- * Replacement: add artifact
- * {@code io.github.agentic-spring-ai:agentic-spring-ai-graph-persistence-jdbc}
- * and use
- * {@code io.github.agentic.spring.ai.graph.persistence.jdbc.h2.CreateOption}.
- *
- * @deprecated since 2.1.0 for removal. Use the replacement artifact and FQCN
- * listed above.
- */
-@Deprecated(since = "2.1.0", forRemoval = true)
-public enum CreateOption {
-
- /** No attempt is made to create the schema object. */
- CREATE_NONE,
-
- /** An existing schema object is reused, otherwise it is created. */
- CREATE_IF_NOT_EXISTS,
-
- /** An existing schema object is dropped and replaced with a new one. */
- CREATE_OR_REPLACE
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/mysql/CreateOption.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/mysql/CreateOption.java
deleted file mode 100644
index a9ffc6cbe..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/mysql/CreateOption.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.checkpoint.savers.mysql;
-
-/**
- * Options which configure the creation of database schema objects, such as
- * tables and indexes.
- *
- * Replacement: add artifact
- * {@code io.github.agentic-spring-ai:agentic-spring-ai-graph-persistence-jdbc}
- * and use
- * {@code io.github.agentic.spring.ai.graph.persistence.jdbc.mysql.CreateOption}.
- *
- * @deprecated since 2.1.0 for removal. Use the replacement artifact and FQCN
- * listed above.
- */
-@Deprecated(since = "2.1.0", forRemoval = true)
-public enum CreateOption {
-
- /** No attempt is made to create the schema object. */
- CREATE_NONE,
-
- /** An existing schema object is reused, otherwise it is created. */
- CREATE_IF_NOT_EXISTS,
-
- /** An existing schema object is dropped and replaced with a new one. */
- CREATE_OR_REPLACE
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/oracle/CreateOption.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/oracle/CreateOption.java
deleted file mode 100644
index 127d61809..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/oracle/CreateOption.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.github.agentic.spring.ai.graph.checkpoint.savers.oracle;
-
-/**
- * Options which configure the creation of database schema objects, such as
- * tables and indexes.
- *
- * Replacement: add artifact
- * {@code io.github.agentic-spring-ai:agentic-spring-ai-graph-persistence-jdbc}
- * and use
- * {@code io.github.agentic.spring.ai.graph.persistence.jdbc.oracle.CreateOption}.
- *
- * @deprecated since 2.1.0 for removal. Use the replacement artifact and FQCN
- * listed above.
- */
-@Deprecated(since = "2.1.0", forRemoval = true)
-public enum CreateOption {
-
- /** No attempt is made to create the schema object. */
- CREATE_NONE,
-
- /** An existing schema object is reused, otherwise it is created. */
- CREATE_IF_NOT_EXISTS,
-
- /** An existing schema object is dropped and replaced with a new one. */
- CREATE_OR_REPLACE
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/postgresql/CreateOption.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/postgresql/CreateOption.java
deleted file mode 100644
index 0717068a0..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/checkpoint/savers/postgresql/CreateOption.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.checkpoint.savers.postgresql;
-
-/**
- * Options which configure the creation of database schema objects, such as
- * tables and indexes.
- *
- * Replacement: add artifact
- * {@code io.github.agentic-spring-ai:agentic-spring-ai-graph-persistence-jdbc}
- * and use
- * {@code io.github.agentic.spring.ai.graph.persistence.jdbc.postgresql.CreateOption}.
- *
- * @deprecated since 2.1.0 for removal. Use the replacement artifact and FQCN
- * listed above.
- */
-@Deprecated(since = "2.1.0", forRemoval = true)
-public enum CreateOption {
-
- /** No attempt is made to create the schema object. */
- CREATE_NONE,
-
- /** An existing schema object is reused, otherwise it is created. */
- CREATE_IF_NOT_EXISTS,
-
- /** An existing schema object is dropped and replaced with a new one. */
- CREATE_OR_REPLACE
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/internal/node/SubCompiledGraphNode.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/internal/node/SubCompiledGraphNode.java
deleted file mode 100644
index a11b68258..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/internal/node/SubCompiledGraphNode.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.github.agentic.spring.ai.graph.internal.node;
-
-import io.github.agentic.spring.ai.graph.CompiledGraph;
-import io.github.agentic.spring.ai.graph.KeyStrategy;
-import io.github.agentic.spring.ai.graph.StateGraph;
-import io.github.agentic.spring.ai.graph.SubGraphNode;
-import io.github.agentic.spring.ai.graph.state.strategy.ReplaceStrategy;
-
-import java.util.Map;
-import java.util.Objects;
-
-import static io.github.agentic.spring.ai.graph.internal.node.ResumableSubGraphAction.outputKeyToParent;
-
-public class SubCompiledGraphNode extends Node implements SubGraphNode {
- private final CompiledGraph subGraph;
- private final String id;
-
- public SubCompiledGraphNode(String id, CompiledGraph subGraph) {
- super(Objects.requireNonNull(id, "id cannot be null"),
- (config) -> new SubCompiledGraphNodeAction(id, config, subGraph));
- this.subGraph = subGraph;
- this.id = id;
- }
-
- public StateGraph subGraph() {
- return subGraph.stateGraph;
- }
-
- @Override
- public Map keyStrategies() {
- return Map.of(outputKeyToParent(id), new ReplaceStrategy());
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/GraphMetricsGenerator.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/GraphMetricsGenerator.java
deleted file mode 100644
index b09f27a86..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/GraphMetricsGenerator.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.observation;
-
-import io.github.agentic.spring.ai.graph.observation.edge.GraphEdgeObservationContext;
-import io.github.agentic.spring.ai.graph.observation.graph.GraphObservationContext;
-import io.github.agentic.spring.ai.graph.observation.metric.SpringAiAlibabaObservationMetricAttributes;
-import io.github.agentic.spring.ai.graph.observation.metric.SpringAiAlibabaObservationMetricNames;
-import io.github.agentic.spring.ai.graph.observation.node.GraphNodeObservationContext;
-import io.micrometer.common.KeyValue;
-import io.micrometer.core.instrument.Counter;
-import io.micrometer.core.instrument.MeterRegistry;
-import io.micrometer.core.instrument.Tag;
-import io.micrometer.observation.Observation;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Utility class for generating metrics from graph observation contexts. Creates counters
- * for graph nodes, edges, and overall graph operations. Supports success/failure tracking
- * and custom tagging for metric aggregation.
- *
- * @author XiaoYunTao
- * @since 2025/6/28
- */
-public class GraphMetricsGenerator {
-
- private static final String DESCRIPTION = "Counts the number of times a graph is used";
-
- private GraphMetricsGenerator() {
- }
-
- /**
- * Generates metrics for a graph node observation context. Creates a counter with
- * node-specific tags and success/failure tracking.
- * @param context the node observation context
- * @param meterRegistry the meter registry for metric registration
- * @param isSuccess whether the node operation was successful
- */
- public static void generate(GraphNodeObservationContext context, MeterRegistry meterRegistry, boolean isSuccess) {
- Counter.builder(SpringAiAlibabaObservationMetricNames.GRAPH_NODE.value())
- .tag(SpringAiAlibabaObservationMetricAttributes.GRAPH_NODE_NAME.value(), context.getNodeName())
- .tag(SpringAiAlibabaObservationMetricAttributes.GRAPH_NODE_SUCCESS.value(), String.valueOf(isSuccess))
- .description(DESCRIPTION)
- .tags(createTags(context))
- .register(meterRegistry)
- .increment();
- }
-
- /**
- * Generates metrics for a graph observation context. Creates a counter with
- * graph-specific tags and success/failure tracking.
- * @param context the graph observation context
- * @param meterRegistry the meter registry for metric registration
- * @param isSuccess whether the graph operation was successful
- */
- public static void generate(GraphObservationContext context, MeterRegistry meterRegistry, boolean isSuccess) {
- Counter.builder(SpringAiAlibabaObservationMetricNames.GRAPH.value())
- .tag(SpringAiAlibabaObservationMetricAttributes.GRAPH_NAME.value(), context.getGraphName())
- .tag(SpringAiAlibabaObservationMetricAttributes.GRAPH_SUCCESS.value(), String.valueOf(isSuccess))
- .description(DESCRIPTION)
- .tags(createTags(context))
- .register(meterRegistry)
- .increment();
- }
-
- /**
- * Generates metrics for a graph edge observation context. Creates a counter with
- * edge-specific tags and success/failure tracking.
- * @param context the edge observation context
- * @param meterRegistry the meter registry for metric registration
- * @param isSuccess whether the edge operation was successful
- */
- public static void generate(GraphEdgeObservationContext context, MeterRegistry meterRegistry, boolean isSuccess) {
- Counter.builder(SpringAiAlibabaObservationMetricNames.GRAPH_EDGE.value())
- .tag(SpringAiAlibabaObservationMetricAttributes.GRAPH_EDGE_NAME.value(), context.getGraphEdgeName())
- .tag(SpringAiAlibabaObservationMetricAttributes.GRAPH_EDGE_SUCCESS.value(), String.valueOf(isSuccess))
- .description(DESCRIPTION)
- .tags(createTags(context))
- .register(meterRegistry)
- .increment();
- }
-
- /**
- * Creates tags from the low cardinality key-values of an observation context.
- * Converts KeyValue objects to Tag objects for metric registration.
- * @param context the observation context containing key-values
- * @return a list of tags created from the context's key-values
- */
- private static List createTags(Observation.Context context) {
- List tags = new ArrayList<>();
- for (KeyValue keyValue : context.getLowCardinalityKeyValues()) {
- tags.add(Tag.of(keyValue.getKey(), keyValue.getValue()));
- }
- return tags;
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/SpringAiAlibabaKind.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/SpringAiAlibabaKind.java
deleted file mode 100644
index 06a174c44..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/SpringAiAlibabaKind.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.observation;
-
-/**
- * Enumeration defining the types of AI operations in Spring AI Alibaba. Provides
- * standardized identifiers for different graph-related observation kinds. Used for
- * categorizing and filtering observation metrics and traces.
- *
- * @author XiaoYunTao
- * @since 2025/6/28
- */
-public enum SpringAiAlibabaKind {
-
- /**
- * Represents a complete graph operation.
- */
- GRAPH("graph"),
-
- /**
- * Represents a graph node operation.
- */
- GRAPH_NODE("graph_node"),
-
- /**
- * Represents a graph edge operation.
- */
- GRAPH_EDGE("graph_edge");
-
- private final String value;
-
- /**
- * Constructs a new SpringAiAlibabaKind with the specified value.
- * @param value the string representation of this kind
- */
- SpringAiAlibabaKind(String value) {
- this.value = value;
- }
-
- /**
- * Gets the string value of this kind.
- * @return the string representation of this kind
- */
- public String getValue() {
- return this.value;
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/metric/SpringAiAlibabaObservationMetricAttributes.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/metric/SpringAiAlibabaObservationMetricAttributes.java
deleted file mode 100644
index ce1c66a14..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/metric/SpringAiAlibabaObservationMetricAttributes.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.observation.metric;
-
-/**
- * Enumeration defining metric attributes for Spring AI Alibaba graph
- * observations.
- * Provides standardized attribute names for graph, node, and edge metrics. Used
- * for
- * tagging and categorizing observation metrics in monitoring systems.
- *
- * @author XiaoYunTao
- * @since 2025/6/28
- */
-public enum SpringAiAlibabaObservationMetricAttributes {
-
- /**
- * Attribute for the name of a graph operation.
- */
- GRAPH_NAME("spring.ai.alibaba.graph.name"),
-
- /**
- * Attribute indicating the success status of a graph operation.
- */
- GRAPH_SUCCESS("spring.ai.alibaba.graph.success"),
-
- /**
- * Attribute for the name of a graph node operation.
- */
- GRAPH_NODE_NAME("spring.ai.alibaba.graph.node.name"),
-
- /**
- * Attribute indicating the success status of a graph node operation.
- */
- GRAPH_NODE_SUCCESS("spring.ai.alibaba.graph.node.success"),
-
- /**
- * Attribute for the name of a graph edge operation.
- */
- GRAPH_EDGE_NAME("spring.ai.alibaba.graph.edge.name"),
-
- /**
- * Attribute indicating the success status of a graph edge operation.
- */
- GRAPH_EDGE_SUCCESS("spring.ai.alibaba.graph.edge.success"),
-
- /**
- * Attribute for Generative AI Prompt.
- */
- GEN_AI_PROMPT("gen_ai.prompt"),
-
- /**
- * Attribute for Generative AI Completion.
- */
- GEN_AI_COMPLETION("gen_ai.completion"),
-
- /**
- * Attribute for Langfuse Input.
- */
- LANGFUSE_INPUT("langfuse.observation.input"),
-
- /**
- * Attribute for Langfuse Output.
- */
- LANGFUSE_OUTPUT("langfuse.observation.output");
-
- private final String value;
-
- /**
- * Constructs a new SpringAiAlibabaObservationMetricAttributes with the
- * specified
- * value.
- *
- * @param value the string representation of this attribute
- */
- SpringAiAlibabaObservationMetricAttributes(String value) {
- this.value = value;
- }
-
- /**
- * Gets the string value of this attribute.
- *
- * @return the string representation of this attribute
- */
- public String value() {
- return value;
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/metric/SpringAiAlibabaObservationMetricNames.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/metric/SpringAiAlibabaObservationMetricNames.java
deleted file mode 100644
index 25a4991b3..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/observation/metric/SpringAiAlibabaObservationMetricNames.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.observation.metric;
-
-/**
- * Enumeration defining metric names for Spring AI Alibaba graph observations. Provides
- * standardized metric names for graph, node, and edge operations. Used for identifying
- * and categorizing different types of observation metrics.
- *
- * @author XiaoYunTao
- * @since 2025/6/28
- */
-public enum SpringAiAlibabaObservationMetricNames {
-
- /**
- * Metric name for graph operations.
- */
- GRAPH("spring.ai.alibaba.graph"),
-
- /**
- * Metric name for graph node operations.
- */
- GRAPH_NODE("spring.ai.alibaba.graph.node"),
-
- /**
- * Metric name for graph edge operations.
- */
- GRAPH_EDGE("spring.ai.alibaba.graph.edge");
-
- private final String value;
-
- /**
- * Constructs a new SpringAiAlibabaObservationMetricNames with the specified value.
- * @param value the string representation of this metric name
- */
- SpringAiAlibabaObservationMetricNames(String value) {
- this.value = value;
- }
-
- /**
- * Gets the string value of this metric name.
- * @return the string representation of this metric name
- */
- public String value() {
- return value;
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/package-info.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/package-info.java
deleted file mode 100644
index 34125c3d8..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/package-info.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * The {@code io.github.agentic.spring.ai.graph} package provides classes and interfaces for
- * building stateful, multi-agent applications with LLMs. It includes core components such
- * as {@link io.github.agentic.spring.ai.graph.StateGraph},
- * {@link io.github.agentic.spring.ai.graph.CompiledGraph},
- * {@link io.github.agentic.spring.ai.graph.internal.node.Node}, and
- * {@link io.github.agentic.spring.ai.graph.internal.edge.Edge}, which facilitate the creation
- * and management of state graphs.
- *
- *
- * Key classes and interfaces:
- *
- *
- * {@link io.github.agentic.spring.ai.graph.StateGraph} - Represents a state graph with nodes
- * and edges.
- * {@link io.github.agentic.spring.ai.graph.CompiledGraph} - Represents a compiled state
- * graph ready for execution.
- * {@link io.github.agentic.spring.ai.graph.internal.node.Node} - Represents a node in the
- * graph with a unique identifier and an associated action.
- * {@link io.github.agentic.spring.ai.graph.internal.edge.Edge} - Represents an edge in the
- * graph with a source ID and a target value.
- *
- *
- *
- * Utility classes:
- *
- *
- * {@link io.github.agentic.spring.ai.graph.utils.CollectionsUtils} - Provides utility
- * methods for creating collections.
- *
- *
- *
- * Exception classes:
- *
- *
- * {@link io.github.agentic.spring.ai.graph.exception.GraphStateException} - Exception thrown
- * when there is an error related to the state of a graph.
- *
- */
-package io.github.agentic.spring.ai.graph;
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/plain_text/jackson/StreamingOutputSerializer.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/plain_text/jackson/StreamingOutputSerializer.java
deleted file mode 100644
index 2725768db..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/plain_text/jackson/StreamingOutputSerializer.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.serializer.plain_text.jackson;
-
-import io.github.agentic.spring.ai.graph.streaming.OutputType;
-import io.github.agentic.spring.ai.graph.streaming.StreamingOutput;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.core.type.WritableTypeId;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.std.StdSerializer;
-import org.springframework.ai.chat.messages.Message;
-
-import java.io.IOException;
-
-/**
- * Custom serializer for StreamingOutput that skips the originData field.
- * Supports serialization of outputType and message fields.
- */
-public class StreamingOutputSerializer extends StdSerializer {
-
- public StreamingOutputSerializer() {
- super(StreamingOutput.class);
- }
-
- @Override
- public void serialize(StreamingOutput value, JsonGenerator gen, SerializerProvider provider) throws IOException {
- gen.writeStartObject();
- serializeFields(value, gen, provider);
- gen.writeEndObject();
- }
-
- @Override
- public void serializeWithType(StreamingOutput value, JsonGenerator gen, SerializerProvider provider, TypeSerializer typeSer) throws IOException {
- WritableTypeId typeIdDef = typeSer.writeTypePrefix(gen, typeSer.typeId(value, JsonToken.START_OBJECT));
- serializeFields(value, gen, provider);
- typeSer.writeTypeSuffix(gen, typeIdDef);
- }
-
- private void serializeFields(StreamingOutput value, JsonGenerator gen, SerializerProvider provider) throws IOException {
- gen.writeStringField("node", value.node());
- gen.writeStringField("agent", value.agent());
- gen.writeObjectField("state", value.state());
- gen.writeBooleanField("subGraph", value.isSubGraph());
-
- // Serialize message if present
- Message message = value.message();
- if (message != null) {
- gen.writeObjectField("message", message);
- }
-
- // Serialize outputType if present
- OutputType outputType = value.getOutputType();
- if (outputType != null) {
- gen.writeStringField("outputType", outputType.name());
- }
-
- // Only serialize chunk field, skip originData
- if (value.chunk() != null) {
- gen.writeStringField("chunk", value.chunk());
- }
- }
-}
-
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/std/StreamingOutputSerializer.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/std/StreamingOutputSerializer.java
deleted file mode 100644
index 0fbaa4315..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/std/StreamingOutputSerializer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.serializer.std;
-
-import io.github.agentic.spring.ai.graph.OverAllState;
-import io.github.agentic.spring.ai.graph.streaming.OutputType;
-import io.github.agentic.spring.ai.graph.streaming.StreamingOutput;
-import org.springframework.ai.chat.messages.Message;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-public class StreamingOutputSerializer implements NullableObjectSerializer {
-
- private final MessageSerializer messageSerializer = new MessageSerializer();
-
- @Override
- public void write(StreamingOutput object, ObjectOutput out) throws IOException {
- // Write base NodeOutput fields
- writeNullableUTF(object.node(), out);
- writeNullableUTF(object.agent(), out);
- writeNullableObject(object.state(), out);
- out.writeBoolean(object.isSubGraph());
-
- // Write StreamingOutput specific fields
- writeNullableUTF(object.chunk(), out);
-
- // Write message using MessageSerializer if present
- Message message = object.message();
- if (message != null) {
- out.writeByte(1);
- messageSerializer.write(message, out);
- } else {
- out.writeByte(0);
- }
-
- // Write outputType if present
- if (object.getOutputType() != null) {
- out.writeByte(1);
- writeNullableUTF(object.getOutputType().name(), out);
- } else {
- out.writeByte(0);
- }
- }
-
- @Override
- @SuppressWarnings("unchecked")
- public StreamingOutput read(ObjectInput in) throws IOException, ClassNotFoundException {
- // Read base NodeOutput fields
- String node = readNullableUTF(in).orElse(null);
- String agent = readNullableUTF(in).orElse(null);
- OverAllState state = (OverAllState) readNullableObject(in).orElse(null);
- boolean subGraph = in.readBoolean();
-
- // Read StreamingOutput specific fields
- String chunk = readNullableUTF(in).orElse(null);
-
- // Read message using MessageSerializer if present
- Message message = null;
- byte hasMessage = in.readByte();
- if (hasMessage == 1) {
- message = messageSerializer.read(in);
- }
-
- // Read outputType if present
- OutputType outputType = null;
- byte hasOutputType = in.readByte();
- if (hasOutputType == 1) {
- String outputTypeStr = readNullableUTF(in).orElse(null);
- if (outputTypeStr != null) {
- try {
- outputType = OutputType.valueOf(outputTypeStr);
- } catch (IllegalArgumentException e) {
- // If enum value is not found, outputType remains null
- }
- }
- }
-
- // Create StreamingOutput with all available fields
- // Prefer constructor with message if message is present
- StreamingOutput> output;
- if (message != null) {
- output = new StreamingOutput<>(message, node, agent, state, outputType);
- } else {
- // Fallback to deprecated constructor with chunk (for backward compatibility)
- output = new StreamingOutput<>(chunk, node, agent, state);
- }
-
- output.setSubGraph(subGraph);
- return output;
- }
-
-}
-
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/std/package-info.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/std/package-info.java
deleted file mode 100644
index 8eaa40f33..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/serializer/std/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * This package contains implementations of the
- * {@link io.github.agentic.spring.ai.graph.serializer.Serializer} interface that utilize Java's
- * built-in serialization mechanism.
- *
- * @see io.github.agentic.spring.ai.graph.serializer.Serializer
- * @see java.io.Serializable
- */
-package io.github.agentic.spring.ai.graph.serializer.std;
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/state/package-info.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/state/package-info.java
deleted file mode 100644
index 420307ca3..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/state/package-info.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Provides classes and interfaces for managing the state of agents in the Spring AI
- * Alibaba framework.
- *
- * This package includes:
- *
- * AgentState - Represents the state of an agent with a map of data.
- * {@link io.github.agentic.spring.ai.graph.state.AgentStateFactory} - A factory interface
- * for creating instances of AgentState.
- * AppendableValue - Represents a value that can be appended to and provides various
- * utility methods.
- *
- */
-package io.github.agentic.spring.ai.graph.state;
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/store/stores/RedisStore.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/store/stores/RedisStore.java
deleted file mode 100644
index 290f43034..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/store/stores/RedisStore.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.store.stores;
-
-import io.github.agentic.spring.ai.graph.store.NamespaceListRequest;
-import io.github.agentic.spring.ai.graph.store.StoreItem;
-import io.github.agentic.spring.ai.graph.store.StoreSearchRequest;
-import io.github.agentic.spring.ai.graph.store.StoreSearchResult;
-import io.github.agentic.spring.ai.graph.store.constant.StoreConstant;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.stream.Collectors;
-
-/**
- * Redis-like implementation of the Store interface using in-memory storage.
- *
- * This implementation simulates Redis behavior using a ConcurrentHashMap for environments
- * where actual Redis dependencies are not available. For production use with actual
- * Redis, replace this with a proper Redis client implementation.
- *
- *
- * @author Spring AI Alibaba
- * @since 1.0.0.3
- */
-public class RedisStore extends BaseStore {
-
- private final Map redisLikeStorage;
-
- private final ObjectMapper objectMapper;
-
- private final String keyPrefix;
-
- private final List readableKeyPrefixes;
-
- private final ReadWriteLock lock = new ReentrantReadWriteLock();
-
- /**
- * Constructor with default key prefix.
- */
- public RedisStore() {
- this(StoreConstant.REDIS_KEY_PREFIX, List.of(StoreConstant.LEGACY_REDIS_KEY_PREFIX));
- }
-
- /**
- * Constructor with custom key prefix.
- * @param keyPrefix Redis key prefix
- */
- public RedisStore(String keyPrefix) {
- this(keyPrefix, List.of());
- }
-
- private RedisStore(String keyPrefix, List fallbackKeyPrefixes) {
- this.redisLikeStorage = new HashMap<>();
- this.keyPrefix = keyPrefix;
- List prefixes = new ArrayList<>();
- prefixes.add(keyPrefix);
- fallbackKeyPrefixes.stream().filter(prefix -> !prefix.equals(keyPrefix)).forEach(prefixes::add);
- this.readableKeyPrefixes = List.copyOf(prefixes);
- this.objectMapper = new ObjectMapper();
- this.objectMapper.findAndRegisterModules();
- }
-
- @Override
- public void putItem(StoreItem item) {
- validatePutItem(item);
-
- lock.writeLock().lock();
- try {
- String storeKey = createStoreKey(item.getNamespace(), item.getKey());
- String redisKey = keyPrefix + storeKey;
- String itemJson = objectMapper.writeValueAsString(item);
- redisLikeStorage.put(redisKey, itemJson);
- readableKeyPrefixes.stream()
- .filter(prefix -> !prefix.equals(keyPrefix))
- .forEach(prefix -> redisLikeStorage.remove(prefix + storeKey));
- }
- catch (Exception e) {
- throw new RuntimeException("Failed to store item in Redis-like storage", e);
- }
- finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- public Optional getItem(List namespace, String key) {
- validateGetItem(namespace, key);
-
- lock.readLock().lock();
- try {
- String storeKey = createStoreKey(namespace, key);
- String value = readableKeyPrefixes.stream()
- .map(prefix -> redisLikeStorage.get(prefix + storeKey))
- .filter(java.util.Objects::nonNull)
- .findFirst()
- .orElse(null);
-
- if (value == null) {
- return Optional.empty();
- }
-
- StoreItem item = objectMapper.readValue(value, StoreItem.class);
- return Optional.of(item);
- }
- catch (Exception e) {
- throw new RuntimeException("Failed to retrieve item from Redis-like storage", e);
- }
- finally {
- lock.readLock().unlock();
- }
- }
-
- @Override
- public boolean deleteItem(List namespace, String key) {
- validateDeleteItem(namespace, key);
-
- lock.writeLock().lock();
- try {
- String storeKey = createStoreKey(namespace, key);
- boolean deleted = false;
- for (String prefix : readableKeyPrefixes) {
- deleted |= redisLikeStorage.remove(prefix + storeKey) != null;
- }
- return deleted;
- }
- finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- public StoreSearchResult searchItems(StoreSearchRequest searchRequest) {
- validateSearchItems(searchRequest);
-
- lock.readLock().lock();
- try {
- List allItems = getAllItems();
-
- // Apply filters
- List filteredItems = allItems.stream()
- .filter(item -> matchesSearchCriteria(item, searchRequest))
- .collect(Collectors.toList());
-
- // Sort items
- if (!searchRequest.getSortFields().isEmpty()) {
- filteredItems.sort(createComparator(searchRequest));
- }
-
- long totalCount = filteredItems.size();
-
- // Apply pagination
- int offset = searchRequest.getOffset();
- int limit = searchRequest.getLimit();
-
- if (offset >= filteredItems.size()) {
- return StoreSearchResult.of(Collections.emptyList(), totalCount, offset, limit);
- }
-
- int endIndex = Math.min(offset + limit, filteredItems.size());
- List resultItems = filteredItems.subList(offset, endIndex);
-
- return StoreSearchResult.of(resultItems, totalCount, offset, limit);
- }
- finally {
- lock.readLock().unlock();
- }
- }
-
- @Override
- public List listNamespaces(NamespaceListRequest namespaceRequest) {
- validateListNamespaces(namespaceRequest);
-
- lock.readLock().lock();
- try {
- Set namespaceSet = new HashSet<>();
- List prefixFilter = namespaceRequest.getNamespace();
-
- List allItems = getAllItems();
-
- for (StoreItem item : allItems) {
- List itemNamespace = item.getNamespace();
-
- // Check if namespace starts with prefix filter
- if (!prefixFilter.isEmpty() && !startsWithPrefix(itemNamespace, prefixFilter)) {
- continue;
- }
-
- // Generate all possible namespace paths up to maxDepth
- int maxDepth = namespaceRequest.getMaxDepth();
- int depth = (maxDepth == -1) ? itemNamespace.size() : Math.min(maxDepth, itemNamespace.size());
-
- for (int i = 1; i <= depth; i++) {
- String namespacePath = String.join("/", itemNamespace.subList(0, i));
- namespaceSet.add(namespacePath);
- }
- }
-
- List namespaces = new ArrayList<>(namespaceSet);
- Collections.sort(namespaces);
-
- // Apply pagination
- int offset = namespaceRequest.getOffset();
- int limit = namespaceRequest.getLimit();
-
- if (offset >= namespaces.size()) {
- return Collections.emptyList();
- }
-
- int endIndex = Math.min(offset + limit, namespaces.size());
- return namespaces.subList(offset, endIndex);
- }
- finally {
- lock.readLock().unlock();
- }
- }
-
- @Override
- public void clear() {
- lock.writeLock().lock();
- try {
- Set keysToRemove = redisLikeStorage.keySet().stream().filter(this::hasReadablePrefix)
- .collect(Collectors.toSet());
- keysToRemove.forEach(redisLikeStorage::remove);
- }
- finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- public long size() {
- lock.readLock().lock();
- try {
- return redisLikeStorage.keySet().stream().map(this::logicalKey).flatMap(Optional::stream).distinct().count();
- }
- finally {
- lock.readLock().unlock();
- }
- }
-
- @Override
- public boolean isEmpty() {
- return size() == 0;
- }
-
- /**
- * Get all items from the primary and fallback key prefixes.
- * @return list of all items
- */
- private List getAllItems() {
- Map items = new LinkedHashMap<>();
-
- for (String prefix : readableKeyPrefixes) {
- for (Map.Entry entry : redisLikeStorage.entrySet()) {
- if (entry.getKey().startsWith(prefix)) {
- try {
- String storeKey = entry.getKey().substring(prefix.length());
- items.putIfAbsent(storeKey, objectMapper.readValue(entry.getValue(), StoreItem.class));
- }
- catch (Exception e) {
- // Skip invalid items
- }
- }
- }
- }
-
- return new ArrayList<>(items.values());
- }
-
- private boolean hasReadablePrefix(String redisKey) {
- return readableKeyPrefixes.stream().anyMatch(redisKey::startsWith);
- }
-
- private Optional logicalKey(String redisKey) {
- return readableKeyPrefixes.stream()
- .filter(redisKey::startsWith)
- .findFirst()
- .map(prefix -> redisKey.substring(prefix.length()));
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/CodeUtils.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/CodeUtils.java
deleted file mode 100644
index 11e3a6278..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/CodeUtils.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.utils;
-
-/**
- * @author HeYQ
- * @since 2025-06-01 20:35
- */
-
-public class CodeUtils {
-
- public static String getExecutableForLanguage(String language) throws Exception {
- return switch (language) {
- case "python3", "python" -> language;
- case "shell", "bash", "sh", "powershell" -> "sh";
- case "nodejs" -> "node";
- case "java" -> "java";
- default -> throw new Exception("Language not recognized in code execution:" + language);
- };
- }
-
- public static String getFileExtForLanguage(String language) throws Exception {
- return switch (language) {
- case "python3", "python" -> "py";
- case "shell", "bash", "sh", "powershell" -> "sh";
- case "nodejs" -> "js";
- case "java" -> "java";
- default -> throw new Exception("Language not recognized in code execution:" + language);
- };
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/FileUtils.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/FileUtils.java
deleted file mode 100644
index bb4ded2f4..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/FileUtils.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.github.agentic.spring.ai.graph.utils;
-
-import java.io.IOException;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-/**
- * @author HeYQ
- * @since 2024-11-28 11:47
- */
-public class FileUtils {
-
- private FileUtils() {
- throw new IllegalStateException("Utility class");
- }
-
- public static void writeCodeToFile(String workDir, String filename, String code) {
- try {
- if (code == null) {
- throw new IllegalArgumentException("Code must not be null");
- }
- Path filepath = Path.of(workDir, filename);
- // ensure the parent directory exists
- Path fileDir = filepath.getParent();
- if (fileDir != null && !Files.exists(fileDir)) {
- Files.createDirectories(fileDir);
- }
- // write the code to the file
- Files.writeString(filepath, code);
- }
- catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Deletes the file specified by the filename from the provided working directory.
- * @param workDir The working directory where the file to be deleted is located.
- * @param filename The name of the file to be deleted.
- */
- public static void deleteFile(String workDir, String filename) {
- try {
- Path filepath = Path.of(workDir, filename);
- Files.deleteIfExists(filepath);
- }
- catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * Copies all JAR files from the resources/lib directory to the specified working
- * directory.
- * @param workDir The target working directory where the JAR files will be copied.
- */
- public static void copyResourceJarToWorkDir(String workDir) {
- try {
- // Get the JAR files from resources/lib directory
- ClassLoader classLoader = FileUtils.class.getClassLoader();
- URL libUrl = classLoader.getResource("lib");
- if (libUrl == null) {
- throw new RuntimeException("Could not find lib directory in resources");
- }
-
- // Create target directory if it doesn't exist
- Path targetDir = Path.of(workDir);
- if (!Files.exists(targetDir)) {
- Files.createDirectories(targetDir);
- }
-
- // Get all JAR files from lib directory
- Path libPath = Path.of(libUrl.toURI());
- try (var stream = Files.walk(libPath)) {
- stream.filter(path -> path.toString().endsWith(".jar")).forEach(jarPath -> {
- try {
- Path targetPath = targetDir.resolve(jarPath.getFileName());
- Files.copy(jarPath, targetPath, java.nio.file.StandardCopyOption.REPLACE_EXISTING);
- }
- catch (IOException e) {
- throw new RuntimeException("Failed to copy JAR file: " + jarPath, e);
- }
- });
- }
- }
- catch (Exception e) {
- throw new RuntimeException("Failed to copy JAR files to working directory", e);
- }
- }
-
- /**
- * Deletes all JAR files from the specified working directory.
- * @param workDir The working directory from which the JAR files will be deleted.
- */
- public static void deleteResourceJarFromWorkDir(String workDir) {
- try {
- Path workDirPath = Path.of(workDir);
- if (Files.exists(workDirPath)) {
- try (var stream = Files.walk(workDirPath)) {
- stream.filter(path -> path.toString().endsWith(".jar")).forEach(jarPath -> {
- try {
- Files.deleteIfExists(jarPath);
- }
- catch (IOException e) {
- throw new RuntimeException("Failed to delete JAR file: " + jarPath, e);
- }
- });
- }
- }
- }
- catch (IOException e) {
- throw new RuntimeException("Failed to delete JAR files from working directory", e);
- }
- }
-
-}
diff --git a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/Messageutils.java b/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/Messageutils.java
deleted file mode 100644
index f8378811e..000000000
--- a/agentic-ai-graph-core/src/main/java/io/github/agentic/spring/ai/graph/utils/Messageutils.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.utils;
-
-import org.springframework.ai.chat.messages.AssistantMessage;
-import org.springframework.ai.chat.messages.Message;
-import org.springframework.ai.chat.messages.SystemMessage;
-import org.springframework.ai.chat.messages.UserMessage;
-
-import org.springframework.util.StringUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-public class Messageutils {
-
- private static final ObjectMapper objectMapper = new ObjectMapper();
-
- /**
- * Generic method to convert various types of messages to Message list
- * Supported types:
- * 1. String - converted to UserMessage
- * 2. Map (e.g. {"role": "user", "text": "test"}) - create corresponding Message based on role
- * 3. Spring AI Message - use directly
- * 4. List - recursively process each element in the list
- */
- public static List convertToMessages(Object value) {
- List result = new ArrayList<>();
-
- if (value == null) {
- return result;
- }
-
- if (value instanceof List>) {
- List> list = (List>) value;
- if (list.isEmpty()) {
- return result;
- }
-
- for (Object item : list) {
- result.addAll(convertToMessages(item));
- }
- }
- else if (value instanceof Message) {
- // If it's already a Spring AI Message, add it directly
- result.add((Message) value);
- }
- else if (value instanceof String) {
- // If it's a string, convert to UserMessage
- String text = (String) value;
- if (StringUtils.hasLength(text)) {
- result.add(new UserMessage(text));
- }
- }
- else if (value instanceof Map) {
- // If it's a Map, attempt to parse as Message
- Map, ?> map = (Map, ?>) value;
- Message message = convertMapToMessage(map);
- if (message != null) {
- result.add(message);
- }
- }
- else {
- // For other types, attempt conversion through JSON serialization/deserialization
- try {
- String json = objectMapper.writeValueAsString(value);
- JsonNode jsonNode = objectMapper.readTree(json);
- if (jsonNode.isObject()) {
- Message message = convertJsonNodeToMessage(jsonNode);
- if (message != null) {
- result.add(message);
- }
- }
- }
- catch (Exception e) {
- // If conversion fails, treat it as a string
- String text = value.toString();
- if (StringUtils.hasLength(text)) {
- result.add(new UserMessage(text));
- }
- }
- }
-
- return result;
- }
-
- /**
- * Convert Map to Message
- */
- public static Message convertMapToMessage(Map, ?> map) {
- if (map == null || map.isEmpty()) {
- return null;
- }
-
- Object roleObj = map.get("role");
- Object textObj = map.get("text");
- Object contentObj = map.get("content");
-
- // Prioritize content, then text
- String content = null;
- if (contentObj != null) {
- content = contentObj.toString();
- }
- else if (textObj != null) {
- content = textObj.toString();
- }
-
- if (!StringUtils.hasLength(content)) {
- return null;
- }
-
- String role = roleObj != null ? roleObj.toString().toLowerCase() : "user";
-
- switch (role) {
- case "system":
- return new SystemMessage(content);
- case "assistant":
- return new AssistantMessage(content);
- case "user":
- default:
- return new UserMessage(content);
- }
- }
-
- /**
- * Convert JsonNode to Message
- */
- public static Message convertJsonNodeToMessage(JsonNode jsonNode) {
- if (jsonNode == null || !jsonNode.isObject()) {
- return null;
- }
-
- JsonNode roleNode = jsonNode.get("role");
- JsonNode textNode = jsonNode.get("text");
- JsonNode contentNode = jsonNode.get("content");
-
- // Prioritize content, then text
- String content = null;
- if (contentNode != null && contentNode.isTextual()) {
- content = contentNode.asText();
- }
- else if (textNode != null && textNode.isTextual()) {
- content = textNode.asText();
- }
-
- if (!StringUtils.hasLength(content)) {
- return null;
- }
-
- String role = roleNode != null && roleNode.isTextual() ? roleNode.asText().toLowerCase() : "user";
-
- return switch (role) {
- case "system" -> new SystemMessage(content);
- case "assistant" -> new AssistantMessage(content);
- case "user" -> new UserMessage(content);
- default -> new UserMessage(content);
- };
- }
-}
diff --git a/agentic-ai-graph-core/src/test/java/io/github/agentic/spring/ai/graph/compatibility/MigratedPersistenceDeprecationTests.java b/agentic-ai-graph-core/src/test/java/io/github/agentic/spring/ai/graph/compatibility/MigratedPersistenceDeprecationTests.java
deleted file mode 100644
index d92abde3d..000000000
--- a/agentic-ai-graph-core/src/test/java/io/github/agentic/spring/ai/graph/compatibility/MigratedPersistenceDeprecationTests.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.compatibility;
-
-import io.github.agentic.spring.ai.graph.checkpoint.BaseCheckpointSaver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.h2.H2Saver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.jdbc.AbstractJdbcCheckpointSaver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.mongo.MongoSaver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.mysql.MysqlSaver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.oracle.OracleSaver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.postgresql.PostgresSaver;
-import io.github.agentic.spring.ai.graph.checkpoint.savers.redis.RedisSaver;
-import io.github.agentic.spring.ai.graph.store.Store;
-import io.github.agentic.spring.ai.graph.store.stores.DatabaseStore;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-class MigratedPersistenceDeprecationTests {
-
- @Test
- void jdbcCheckpointSaverCompatibilityTypesAreDeprecatedForRemoval() {
- assertDeprecatedForRemoval(AbstractJdbcCheckpointSaver.class);
- assertDeprecatedForRemoval(H2Saver.class);
- assertDeprecatedForRemoval(MysqlSaver.class);
- assertDeprecatedForRemoval(OracleSaver.class);
- assertDeprecatedForRemoval(PostgresSaver.class);
- assertDeprecatedForRemoval(io.github.agentic.spring.ai.graph.checkpoint.savers.h2.CreateOption.class);
- assertDeprecatedForRemoval(io.github.agentic.spring.ai.graph.checkpoint.savers.mysql.CreateOption.class);
- assertDeprecatedForRemoval(io.github.agentic.spring.ai.graph.checkpoint.savers.oracle.CreateOption.class);
- assertDeprecatedForRemoval(io.github.agentic.spring.ai.graph.checkpoint.savers.postgresql.CreateOption.class);
-
- Class extends BaseCheckpointSaver> h2Type = H2Saver.class;
- Class extends BaseCheckpointSaver> mysqlType = MysqlSaver.class;
- Class extends BaseCheckpointSaver> oracleType = OracleSaver.class;
- Class extends BaseCheckpointSaver> postgresType = PostgresSaver.class;
- assertSame(H2Saver.class, h2Type);
- assertSame(MysqlSaver.class, mysqlType);
- assertSame(OracleSaver.class, oracleType);
- assertSame(PostgresSaver.class, postgresType);
- assertEquals("CREATE_IF_NOT_EXISTS",
- io.github.agentic.spring.ai.graph.checkpoint.savers.h2.CreateOption.CREATE_IF_NOT_EXISTS.name());
- }
-
- @Test
- void databaseStoreCompatibilityTypeIsDeprecatedForRemoval() {
- assertDeprecatedForRemoval(DatabaseStore.class);
-
- Class extends Store> storeType = DatabaseStore.class;
- assertSame(DatabaseStore.class, storeType);
- }
-
- @Test
- void redisAndMongoSaverCompatibilityTypesAreDeprecatedForRemoval() {
- assertDeprecatedForRemoval(RedisSaver.class);
- assertDeprecatedForRemoval(MongoSaver.class);
-
- Class extends BaseCheckpointSaver> redisType = RedisSaver.class;
- Class extends BaseCheckpointSaver> mongoType = MongoSaver.class;
- assertSame(RedisSaver.class, redisType);
- assertSame(MongoSaver.class, mongoType);
- }
-
- private static void assertDeprecatedForRemoval(Class> type) {
- Deprecated deprecated = type.getAnnotation(Deprecated.class);
- assertNotNull(deprecated, () -> type.getName() + " must be deprecated");
- assertEquals("2.1.0", deprecated.since(), () -> type.getName() + " must declare since=2.1.0");
- assertTrue(deprecated.forRemoval(), () -> type.getName() + " must be marked for removal");
- }
-
-}
diff --git a/agentic-ai-graph-core/src/test/java/io/github/agentic/spring/ai/graph/store/stores/RedisStoreTest.java b/agentic-ai-graph-core/src/test/java/io/github/agentic/spring/ai/graph/store/stores/RedisStoreTest.java
deleted file mode 100644
index 3bcc945ab..000000000
--- a/agentic-ai-graph-core/src/test/java/io/github/agentic/spring/ai/graph/store/stores/RedisStoreTest.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.graph.store.stores;
-
-import io.github.agentic.spring.ai.graph.store.NamespaceListRequest;
-import io.github.agentic.spring.ai.graph.store.StoreItem;
-import io.github.agentic.spring.ai.graph.store.StoreSearchRequest;
-import io.github.agentic.spring.ai.graph.store.StoreSearchResult;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.lang.reflect.Field;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-/**
- * Unit tests for RedisStore implementation.
- *
- * @author Spring AI Alibaba
- */
-class RedisStoreTest {
-
- private static final String LEGACY_PREFIX = "spring:ai:alibaba:store:";
-
- private RedisStore redisStore;
-
- @BeforeEach
- void setUp() {
- redisStore = new RedisStore();
- }
-
- @Test
- void testPutAndGetItem() {
- // Given
- List namespace = List.of("users", "user123");
- String key = "preferences";
- Map value = Map.of("theme", "dark", "language", "en-US");
- StoreItem item = StoreItem.of(namespace, key, value);
-
- // When
- redisStore.putItem(item);
- Optional retrieved = redisStore.getItem(namespace, key);
-
- // Then
- assertThat(retrieved).isPresent();
- assertThat(retrieved.get().getNamespace()).isEqualTo(namespace);
- assertThat(retrieved.get().getKey()).isEqualTo(key);
- assertThat(retrieved.get().getValue()).isEqualTo(value);
- }
-
- @Test
- void defaultStoreWritesItemsWithAgenticPrefix() throws Exception {
- redisStore.putItem(StoreItem.of(List.of("users", "user123"), "preferences", Map.of("theme", "dark")));
-
- assertThat(storage().keySet()).allMatch(key -> key.startsWith("agentic:spring:ai:store:"));
- }
-
- @Test
- void defaultStoreReadsLegacyPrefixedItems() throws Exception {
- StoreItem legacyItem = StoreItem.of(List.of("users", "legacy"), "preferences", Map.of("theme", "dark"));
- putRawItem(LEGACY_PREFIX, legacyItem);
-
- assertThat(redisStore.getItem(legacyItem.getNamespace(), legacyItem.getKey())).isPresent();
- assertThat(redisStore.searchItems(StoreSearchRequest.builder().build()).getItems()).hasSize(1);
- assertThat(redisStore.listNamespaces(NamespaceListRequest.builder().build())).contains("users", "users/legacy");
- assertThat(redisStore.size()).isEqualTo(1);
- }
-
- @Test
- void updatingLegacyItemMigratesItToAgenticPrefix() throws Exception {
- List namespace = List.of("users", "legacy");
- String key = "preferences";
- putRawItem(LEGACY_PREFIX, StoreItem.of(namespace, key, Map.of("theme", "light")));
-
- redisStore.putItem(StoreItem.of(namespace, key, Map.of("theme", "dark")));
-
- assertThat(redisStore.getItem(namespace, key)).get().extracting(StoreItem::getValue)
- .isEqualTo(Map.of("theme", "dark"));
- assertThat(storage().keySet()).noneMatch(redisKey -> redisKey.startsWith(LEGACY_PREFIX));
- assertThat(redisStore.size()).isEqualTo(1);
- }
-
- @Test
- void deleteAndClearRemoveLegacyPrefixedItems() throws Exception {
- StoreItem deletedItem = StoreItem.of(List.of("users", "legacy"), "deleted", Map.of("value", 1));
- StoreItem clearedItem = StoreItem.of(List.of("users", "legacy"), "cleared", Map.of("value", 2));
- putRawItem(LEGACY_PREFIX, deletedItem);
- putRawItem(LEGACY_PREFIX, clearedItem);
-
- assertThat(redisStore.deleteItem(deletedItem.getNamespace(), deletedItem.getKey())).isTrue();
- assertThat(redisStore.getItem(deletedItem.getNamespace(), deletedItem.getKey())).isEmpty();
-
- redisStore.clear();
- assertThat(redisStore.isEmpty()).isTrue();
- assertThat(storage()).isEmpty();
- }
-
- @Test
- void testDeleteItem() {
- // Given
- List namespace = List.of("test", "namespace");
- String key = "test_key";
- Map value = Map.of("data", "test_value");
- StoreItem item = StoreItem.of(namespace, key, value);
-
- redisStore.putItem(item);
- assertThat(redisStore.getItem(namespace, key)).isPresent();
-
- // When
- boolean deleted = redisStore.deleteItem(namespace, key);
-
- // Then
- assertThat(deleted).isTrue();
- assertThat(redisStore.getItem(namespace, key)).isEmpty();
- assertThat(redisStore.deleteItem(namespace, key)).isFalse(); // Already deleted
- }
-
- @Test
- void testSearchItems() {
- // Given
- setupTestData();
-
- // When - search all items
- StoreSearchRequest request = StoreSearchRequest.builder().build();
- StoreSearchResult result = redisStore.searchItems(request);
-
- // Then
- assertThat(result.getItems()).hasSize(3);
- assertThat(result.getTotalCount()).isEqualTo(3);
- }
-
- @Test
- void testListNamespaces() {
- // Given
- setupTestData();
-
- // When
- NamespaceListRequest request = NamespaceListRequest.builder().build();
- List namespaces = redisStore.listNamespaces(request);
-
- // Then
- assertThat(namespaces).hasSize(6);
- assertThat(namespaces).containsExactlyInAnyOrder("users", "users/admin", "users/user1",
- "users/user1/preferences", "users/user2", "users/user2/preferences");
- }
-
- @Test
- void testValidationErrors() {
- // Test null item
- assertThrows(IllegalArgumentException.class, () -> redisStore.putItem(null));
-
- // Test null namespace
- assertThrows(IllegalArgumentException.class, () -> redisStore.getItem(null, "key"));
-
- // Test null key
- assertThrows(IllegalArgumentException.class, () -> redisStore.getItem(List.of("namespace"), null));
-
- // Test empty key
- assertThrows(IllegalArgumentException.class, () -> redisStore.getItem(List.of("namespace"), ""));
-
- // Test null search request
- assertThrows(IllegalArgumentException.class, () -> redisStore.searchItems(null));
-
- // Test null namespace request
- assertThrows(IllegalArgumentException.class, () -> redisStore.listNamespaces(null));
- }
-
- @Test
- void testSizeAndClear() {
- // Given
- assertThat(redisStore.isEmpty()).isTrue();
- assertThat(redisStore.size()).isEqualTo(0);
-
- setupTestData();
-
- // When
- assertThat(redisStore.isEmpty()).isFalse();
- assertThat(redisStore.size()).isEqualTo(3);
-
- redisStore.clear();
-
- // Then
- assertThat(redisStore.isEmpty()).isTrue();
- assertThat(redisStore.size()).isEqualTo(0);
- }
-
- @Test
- void testSearchByNamespace() {
- // Given
- setupTestData();
-
- // When
- StoreSearchRequest request = StoreSearchRequest.builder().namespace(List.of("users", "user1")).build();
- StoreSearchResult result = redisStore.searchItems(request);
-
- // Then
- assertThat(result.getItems()).hasSize(1);
- List namespace = result.getItems().get(0).getNamespace();
- assertThat(namespace).hasSize(3);
- assertThat(namespace.get(0)).isEqualTo("users");
- assertThat(namespace.get(1)).isEqualTo("user1");
- assertThat(namespace.get(2)).isEqualTo("preferences");
- }
-
- @Test
- void testSearchByQuery() {
- // Given
- setupTestData();
-
- // When
- StoreSearchRequest request = StoreSearchRequest.builder().query("Administrator").build();
- StoreSearchResult result = redisStore.searchItems(request);
-
- // Then
- assertThat(result.getItems()).hasSize(1);
- assertThat(result.getItems().get(0).getValue().get("name")).isEqualTo("Administrator");
- }
-
- @Test
- void testSearchWithFilters() {
- // Given
- setupTestData();
-
- // When
- StoreSearchRequest request = StoreSearchRequest.builder().filter(Map.of("theme", "dark")).build();
- StoreSearchResult result = redisStore.searchItems(request);
-
- // Then
- assertThat(result.getItems()).hasSize(1);
- assertThat(result.getItems().get(0).getValue().get("theme")).isEqualTo("dark");
- }
-
- @Test
- void testPagination() {
- // Given
- setupTestData();
-
- // When
- StoreSearchRequest request = StoreSearchRequest.builder().offset(1).limit(1).build();
- StoreSearchResult result = redisStore.searchItems(request);
-
- // Then
- assertThat(result.getItems()).hasSize(1);
- assertThat(result.getOffset()).isEqualTo(1);
- assertThat(result.getLimit()).isEqualTo(1);
- assertThat(result.getTotalCount()).isEqualTo(3);
- }
-
- @Test
- void testUpdateExistingItem() {
- // Given
- List namespace = List.of("test");
- String key = "updatable_item";
- Map originalValue = Map.of("version", 1);
- StoreItem originalItem = StoreItem.of(namespace, key, originalValue);
-
- redisStore.putItem(originalItem);
-
- // When - update the same item
- Map updatedValue = Map.of("version", 2, "updated", true);
- StoreItem updatedItem = StoreItem.of(namespace, key, updatedValue);
- redisStore.putItem(updatedItem);
-
- // Then
- Optional retrieved = redisStore.getItem(namespace, key);
- assertThat(retrieved).isPresent();
- assertThat(retrieved.get().getValue()).isEqualTo(updatedValue);
- assertThat(redisStore.size()).isEqualTo(1); // Should still be 1 item
- }
-
- private void setupTestData() {
- // User admin data
- redisStore.putItem(
- StoreItem.of(List.of("users", "admin"), "profile", Map.of("name", "Administrator", "role", "admin")));
-
- // User1 preferences
- redisStore.putItem(StoreItem.of(List.of("users", "user1", "preferences"), "ui_settings",
- Map.of("theme", "dark", "language", "en-US")));
-
- // User2 preferences
- redisStore.putItem(StoreItem.of(List.of("users", "user2", "preferences"), "ui_settings",
- Map.of("theme", "light", "language", "zh-CN")));
- }
-
- @SuppressWarnings("unchecked")
- private Map storage() throws Exception {
- Field storageField = RedisStore.class.getDeclaredField("redisLikeStorage");
- storageField.setAccessible(true);
- return (Map) storageField.get(redisStore);
- }
-
- private void putRawItem(String prefix, StoreItem item) throws Exception {
- ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules();
- storage().put(prefix + redisStore.createStoreKey(item.getNamespace(), item.getKey()),
- objectMapper.writeValueAsString(item));
- }
-
-}
diff --git a/agentic-ai-graph-core/src/test/resources/logging.properties b/agentic-ai-graph-core/src/test/resources/logging.properties
deleted file mode 100644
index 2a11d3771..000000000
--- a/agentic-ai-graph-core/src/test/resources/logging.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-# Set the default logging level to INFO
-.level = SEVERE
-
-# Specify the handlers that will handle the log messages
-handlers = java.util.logging.ConsoleHandler
-
-# Configure the ConsoleHandler
-java.util.logging.ConsoleHandler.level = ALL
-java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-
-# Configure the FileHandler
-java.util.logging.FileHandler.pattern = log.txt
-java.util.logging.FileHandler.limit = 0
-java.util.logging.FileHandler.count = 1
-java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
-
-# Set the logging level for the FileHandler to ALL
-java.util.logging.FileHandler.level = ALL
-
-# Configure the SimpleFormatter to include date, source, logger name, level, and message
-# java.util.logging.SimpleFormatter.format = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n
-java.util.logging.SimpleFormatter.format=%5$s %6$s%n
-# %1$tF: Date in ISO 8601 format (e.g., 2023-10-05).
-# %1$tT: Time in 24-hour format (e.g., 12:34:56).
-# %4$s: Log level (e.g., INFO).
-# %3$s: Method name (e.g., main).
-# %5$s: Log message.
-# %6$s: Thrown exception (if any).
-# %n: Newline.
-
-io.github.agentic.spring.ai.graph.level = FINEST
diff --git a/agentic-ai-studio/README.md b/agentic-ai-studio/README.md
deleted file mode 100644
index b34546372..000000000
--- a/agentic-ai-studio/README.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# Agent Chat UI
-
-Agent Chat UI provides a visualized way for developers to chat with any Agentic AI developed Agents.
-
-## Quick Experience
-
-> Go to the [examples](../examples) directory to experience real world usage.
-
-1. Start backend agent
-
-Go to the `src/test/java` directory, start the backend agent by running `StudioApplication`.
-The unified application supports both **Graph** (e.g. `simple_workflow`) and **Agent** (e.g. `single_agent`, `research_agent`) APIs.
-
-2. Then, start the chat ui
-
-```shell
-corepack enable
-pnpm install --frozen-lockfile
-pnpm dev
-```
-
-3. Chat with agent
-
-Visit `http://localhost:3000`.
-
-### Embedded mode
-
-The ui can work in a embedded mode with any of your Spring Boot applications.
-
-Just add the following dependency to your agent project:
-
-```xml
-
- io.github.agentic-spring-ai
- agentic-spring-ai-studio
- 2.1.0-dev
-
-```
-
-Run your agent, visit `http://localhost:{your-port}/chatui/index.html`, and now you can chat with your agent.
-
-Studio keeps static UI assets public, but all Studio API endpoints fail closed until a backend token is configured:
-
-```properties
-spring.ai.alibaba.agent.studio.execution.auth-token=change-me
-```
-
-The embedded static UI does not read this value from build-time environment variables. Open the UI
-configuration panel and set `Execution Token`; the browser stores it in `sessionStorage` for the
-current tab session and sends it as `X-Agentic-Studio-Token` on discovery, execution, and thread requests.
-
-Checkpoint keys created by older Studio versions used only `threadId`. Migrate known legacy threads
-before accepting traffic after an upgrade; runtime reads intentionally do not fall back to unscoped
-keys because that would permit cross-user access:
-
-```java
-saver.migrateLegacyThread(
- RunnableConfig.builder().threadId(threadId).build(),
- RunnableConfig.builder().threadId(threadId)
- .addMetadata(RunnableConfig.APP_NAME_METADATA_KEY, appName)
- .addMetadata(RunnableConfig.USER_ID_METADATA_KEY, userId)
- .build());
-```
-
-Build the static UI before packaging the Maven project:
-
-```shell
-cd agent-chat-ui
-pnpm install --frozen-lockfile
-pnpm run build:static
-cd ..
-../mvnw -pl :agentic-spring-ai-studio -am -DskipTests package
-```
-
-### Standalone mode
-
-First, clone the repository,
-
-```bash
-git clone https://github.com/agentic-spring-ai/agentic-spring-ai.git
-
-cd agentic-spring-ai/agentic-ai-studio/agent-chat-ui
-```
-
-Install dependencies:
-
-```bash
-pnpm install
-# or
-# npm install
-```
-
-Run the app:
-
-```bash
-pnpm dev
-# or
-# npm run dev
-```
-
-The app will be available at `http://localhost:3000`.
-
-By default, the UI connects to your backend Agent at `http://localhost:8080`, you can change the address at `.env.development` file.
-
-```properties
-# .env.development
-NEXT_PUBLIC_API_URL=http://localhost:8080
-# The agent to call in the backend application, backend application should register agent as required, check examples for how to configure.
-NEXT_PUBLIC_APP_NAME=research_agent
-NEXT_PUBLIC_USER_ID=user-001
-```
diff --git a/agentic-ai-studio/agent-chat-ui/README.md b/agentic-ai-studio/agent-chat-ui/README.md
deleted file mode 100644
index 1bd3799c2..000000000
--- a/agentic-ai-studio/agent-chat-ui/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Agent Chat UI
-
-Agent Chat UI provides a visual way for developers to chat with Agentic AI agents.
-
-## 🚀 How to use
-
-### Embedded mode
-
-The ui can work in a embedded mode with any of your Spring Boot applications.
-
-Just add the following dependency to your agent project:
-
-```xml
-
- io.github.agentic-spring-ai
- agentic-spring-ai-studio
- 2.1.0-dev
-
-```
-
-Run your agent, visit `http:localhost:{your-port}/chatui/index.html`, and now you can chat with you agent.
-
-### Standalone mode
-
-First, clone the repository,
-
-```bash
-git clone https://github.com/agentic-spring-ai/agentic-spring-ai.git
-
-cd agentic-spring-ai/agentic-ai-studio/agent-chat-ui
-```
-
-Install dependencies:
-
-```bash
-pnpm install
-# or
-# npm install
-```
-
-Run the app:
-
-```bash
-pnpm dev
-# or
-# npm run dev
-```
-
-The app will be available at `http://localhost:3000`.
-
-By default, the UI connects to your backend Agent at `http://localhost:8080`, you can change the address at `.env.development` file.
-
-```properties
-# .env.development
-NEXT_PUBLIC_API_URL=http://localhost:8080
-# The agent to call in the backend application, backend application should register agent as required, check examples for how to configure.
-NEXT_PUBLIC_APP_NAME=research_agent
-NEXT_PUBLIC_USER_ID=user-001
-```
-
-## Build and deploy
-
-```shell
-pnpm run deploy # This will build and copy static files to src/main/resources
-```
diff --git a/agentic-ai-studio/agent-chat-ui/public/logo.svg b/agentic-ai-studio/agent-chat-ui/public/logo.svg
deleted file mode 100644
index 310262ec1..000000000
--- a/agentic-ai-studio/agent-chat-ui/public/logo.svg
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AAI
-
-
-
-
-
-
-
-
-
-
- Agentic AI
-
-
-
-
-
-
-
diff --git a/agentic-ai-studio/agent-chat-ui/src/components/icons/saa-logo.tsx b/agentic-ai-studio/agent-chat-ui/src/components/icons/saa-logo.tsx
deleted file mode 100644
index b9a779f61..000000000
--- a/agentic-ai-studio/agent-chat-ui/src/components/icons/saa-logo.tsx
+++ /dev/null
@@ -1,125 +0,0 @@
-export function SAALogoSVG({
- className,
- width,
- height,
-}: {
- width?: number;
- height?: number;
- className?: string;
-}) {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Spring
-
-
-
- AI
-
-
-
-
-
- Alibaba
-
-
-
-
-
-
-
- );
-}
diff --git a/agentic-ai-studio/pom.xml b/agentic-ai-studio/pom.xml
deleted file mode 100644
index ec9a446e5..000000000
--- a/agentic-ai-studio/pom.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
-
- 4.0.0
-
- io.github.agentic-spring-ai
- agentic-spring-ai
- ${revision}
- ../pom.xml
-
-
- agentic-spring-ai-studio
- jar
- Agentic AI Studio
- The studio library that is designed to be used inside Agentic AI project.
- https://github.com/agentic-spring-ai/agentic-spring-ai
-
- git://github.com/agentic-spring-ai/agentic-spring-ai.git
- git@github.com:agentic-spring-ai/agentic-spring-ai.git
- https://github.com/agentic-spring-ai/agentic-spring-ai
-
-
-
- false
-
-
-
-
- org.springframework.ai
- spring-ai-starter-mcp-client
- test
-
-
-
- com.networknt
- json-schema-validator
- 1.5.7
- test
-
-
-
- io.github.agentic-spring-ai
- agentic-spring-ai-agent-framework
- ${project.parent.version}
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.boot
- spring-boot-starter
-
-
-
- org.springframework.boot
- spring-boot-configuration-processor
- true
-
-
-
- org.springframework.boot
- spring-boot-autoconfigure-processor
- true
-
-
-
- com.github.ben-manes.caffeine
- caffeine
-
-
-
- jakarta.servlet
- jakarta.servlet-api
- provided
-
-
-
- org.junit.jupiter
- junit-jupiter
- test
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
-
-
-
- maven-resources-plugin
- 3.5.0
-
-
- copy-agent-chat-ui
-
- copy-resources
-
- process-resources
-
- ${project.build.outputDirectory}/META-INF/resources/chatui
-
-
- agent-chat-ui/out
- false
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
-
- generate-openapi
-
- http://localhost:8080/v3/api-docs.yaml
-
-
-
-
- org.springdoc
- springdoc-openapi-maven-plugin
- ${springdoc-openapi-maven-plugin.version}
-
- ${studio.openapi.api-docs-url}
- openapi.yaml
- ${project.basedir}/src/main/resources
-
-
-
- generate-openapi
-
- generate
-
- generate-resources
-
-
-
-
-
-
-
-
-
diff --git a/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/SaaStudioWebModuleAutoConfiguration.java b/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/SaaStudioWebModuleAutoConfiguration.java
deleted file mode 100644
index a6ea12429..000000000
--- a/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/SaaStudioWebModuleAutoConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.agent.studio;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@ComponentScan(basePackages = "io.github.agentic.spring.ai.agent.studio")
-public class SaaStudioWebModuleAutoConfiguration {
-
- private static final Logger log = LoggerFactory.getLogger(SaaStudioWebModuleAutoConfiguration.class);
-
- public SaaStudioWebModuleAutoConfiguration() {
- log.info("Agentic AI Studio module loaded");
- }
-}
diff --git a/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/dto/GraphResponse.java b/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/dto/GraphResponse.java
deleted file mode 100644
index 47f5c67f5..000000000
--- a/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/dto/GraphResponse.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.github.agentic.spring.ai.agent.studio.dto;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * DTO for graph representation response. Contains the graph diagram in Mermaid or DOT format
- * for UI visualization.
- */
-public class GraphResponse {
-
- @JsonProperty("dotSrc")
- public String dotSrc;
-
- @JsonProperty("mermaidSrc")
- public String mermaidSrc;
-
- /**
- * Constructs a GraphResponse with Mermaid source (preferred for UI).
- *
- * @param mermaidSrc The graph source in Mermaid format.
- */
- public GraphResponse(String mermaidSrc, boolean useMermaid) {
- if (useMermaid) {
- this.mermaidSrc = mermaidSrc;
- this.dotSrc = null;
- }
- else {
- this.dotSrc = mermaidSrc;
- this.mermaidSrc = null;
- }
- }
-
- /**
- * Constructs a GraphResponse with DOT source (legacy).
- *
- * @param dotSrc The graph source string (e.g., in DOT format).
- */
- public GraphResponse(String dotSrc) {
- this.dotSrc = dotSrc;
- this.mermaidSrc = null;
- }
-
- public GraphResponse() {
- }
-
- public String getDotSrc() {
- return dotSrc;
- }
-
- public String getMermaidSrc() {
- return mermaidSrc;
- }
-}
diff --git a/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/utils/FileUtils.java b/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/utils/FileUtils.java
deleted file mode 100644
index 080d1e0b6..000000000
--- a/agentic-ai-studio/src/main/java/io/github/agentic/spring/ai/agent/studio/utils/FileUtils.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2024-2026 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.agentic.spring.ai.agent.studio.utils;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.logging.Logger;
-
-public class FileUtils {
-
- private static final Logger logger = Logger.getLogger(FileUtils.class.getName());
-
- public static void createFileIfNotExists(Path outputPath) throws IOException {
- if (!Files.exists(outputPath)) {
- Files.createFile(outputPath);
- }
- }
-
- public static List readLines(Path outputPath) throws IOException {
- return Files.readAllLines(outputPath);
- }
-
-}
-
-
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/404.html b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/404.html
deleted file mode 100644
index f314d6651..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/404.html
+++ /dev/null
@@ -1 +0,0 @@
-404: This page could not be found. Agent Chat
404
This page could not be found.
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/02c5145a.219b3b017214f8c4.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/02c5145a.219b3b017214f8c4.js
deleted file mode 100644
index ee56f2e10..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/02c5145a.219b3b017214f8c4.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9760],{69981:(t,e,a)=>{a.d(e,{DA:()=>S,FA:()=>D,Zk:()=>f,aP:()=>ek,lC:()=>x,nM:()=>M,nq:()=>eb});var l=a(5663),r=a(82142),i=a(29278),n=a(13892),s=a(69301),h=a(98999),o=a(91158),d=a(70668),c=a(99788);async function g(t){let e=t.getElementsByTagName("img");if(!e||0===e.length)return;let a=!y(t);await Promise.all([...e].map(t=>new Promise(e=>{function l(){if(t.style.display="flex",t.style.flexDirection="column",a){let e=(0,s.D7)().fontSize?(0,s.D7)().fontSize:window.getComputedStyle(document.body).fontSize,[a=s.UI.fontSize]=(0,n.I5)(e),l=5*a+"px";t.style.minWidth=l,t.style.maxWidth=l}else t.style.width="100%";e(t)}(0,o.K)(l,"setupImage"),setTimeout(()=>{t.complete&&l()}),t.addEventListener("error",l),t.addEventListener("load",l)})))}function y(t){return 3===t.nodeType?t.textContent?.trim()!=="":1===t.nodeType&&"img"!==t.tagName.toLowerCase()&&[...t.childNodes].some(y)}(0,o.K)(g,"configureLabelImages"),(0,o.K)(y,"hasTextBesidesImages");var p=(0,o.K)(async(t,e,a)=>{let l=(0,s.D7)(),i=t.insert("g").attr("class",a??"node default").attr("id",e.domId||e.id),h=i.insert("g").attr("class","label").attr("style",(0,n.KL)(e.labelStyle)),o=[{text:"string"==typeof e.label?e.label:e.label?.[0]??"",cssClass:"c4-name"},{text:e.stereotype,cssClass:"c4-type"},...(e.description??[]).map(t=>({text:t,cssClass:"c4-descr"}))].filter(t=>t.text),c=e.width?Math.max(e.width-2*(e.padding??0),32):(0,s.D7)().flowchart?.wrappingWidth??200,g=l.c4?.wrap??!0?c:1/0,y=await Promise.all(o.map(async t=>{let a=h.append("g").attr("class",t.cssClass),i=await (0,r.GZ)(a,(0,s.jZ)((0,n.Sm)(t.text??""),l),{useHtmlLabels:!1,markdown:!1,isNode:!0,width:g,style:e.labelStyle},l);return(0,d.Ltv)(i).selectAll("tspan.text-outer-tspan").attr("text-anchor","middle"),(0,d.Ltv)(i).selectAll("tspan.text-inner-tspan").attr("font-weight",null).attr("font-style",null),{el:a,box:a.node().getBBox()}})),p=Math.max(...y.map(({box:t})=>t.width),0),f=0;for(let{el:t,box:e}of y)t.attr("transform",`translate(${p/2-e.x-e.width/2}, ${f-e.y})`),f+=e.height+3;let u=y.length>0?f-3:0;return h.insert("rect",":first-child"),h.attr("transform",`translate(${-p/2}, ${-u/2})`),{shapeSvg:i,bbox:h.node().getBBox(),halfPadding:(e.padding??0)/2,label:h}},"c4LabelHelper"),f=(0,o.K)(async(t,e,a)=>{let l,i,h;if(void 0!==e.stereotype)return p(t,e,a);let o=e.useHtmlLabels||(0,s._3)((0,s.D7)()?.htmlLabels);l=a||"node default";let c=t.insert("g").attr("class",l).attr("id",e.domId||e.id),y=c.insert("g").attr("class","label").attr("style",(0,n.KL)(e.labelStyle));i=void 0===e.label?"":"string"==typeof e.label?e.label:e.label[0];let f=!!e.icon||!!e.img,u="markdown"===e.labelType,x=await (0,r.GZ)(y,(0,s.jZ)((0,n.Sm)(i),(0,s.D7)()),{useHtmlLabels:o,width:e.width||e.wrappingWidth||(0,s.D7)().flowchart?.wrappingWidth,classes:u?"markdown-node-label":"",style:e.labelStyle,addSvgBackground:f,markdown:u},(0,s.D7)()),w=(e?.padding??0)/2;if(o){let t=x.children[0],e=(0,d.Ltv)(x);await g(t),h=await r.lT.measure(()=>t.getBoundingClientRect()),e.attr("width",h.width),e.attr("height",h.height)}else h=await r.lT.measure(()=>x.getBBox());return o?y.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):y.attr("transform","translate(0, "+-h.height/2+")"),e.centerLabel&&y.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),y.insert("rect",":first-child"),{shapeSvg:c,bbox:h,halfPadding:w,label:y}},"labelHelper"),u=(0,o.K)(async(t,e,a)=>{let l,i=a.useHtmlLabels??(0,s.E)((0,s.D7)()),h=t.insert("g").attr("class","label").attr("style",a.labelStyle||""),o=await (0,r.GZ)(h,(0,s.jZ)((0,n.Sm)(e),(0,s.D7)()),{useHtmlLabels:i,width:a.width||(0,s.D7)()?.flowchart?.wrappingWidth,style:a.labelStyle,addSvgBackground:!!a.icon||!!a.img}),c=a.padding/2;if((0,s.E)((0,s.D7)())){let t=o.children[0],e=(0,d.Ltv)(o);l=await r.lT.measure(()=>t.getBoundingClientRect()),e.attr("width",l.width),e.attr("height",l.height)}else l=await r.lT.measure(()=>o.getBBox());return i?h.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"):h.attr("transform","translate(0, "+-l.height/2+")"),a.centerLabel&&h.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),h.insert("rect",":first-child"),{shapeSvg:t,bbox:l,halfPadding:c,label:h}},"insertLabel"),x=(0,o.K)((t,e,a)=>{if(a){t.width=a.width,t.height=a.height;return}let l=e.node().getBBox();t.width=l.width,t.height=l.height},"updateNodeBounds"),w=(0,o.K)((t,e)=>("handDrawn"===t.look?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");function m(t){let e=t.map((t,e)=>`${0===e?"M":"L"}${t.x},${t.y}`);return e.push("Z"),e.join(" ")}function $(t,e,a,l,r,i){let n=[],s=a-t,h=2*Math.PI/(s/i),o=e+(l-e)/2;for(let e=0;e<=50;e++){let a=t+e/50*s,l=o+r*Math.sin(h*(a-t));n.push({x:a,y:l})}return n}function b(t,e,a,l,r,i){let n=[],s=r*Math.PI/180,h=(i*Math.PI/180-s)/(l-1);for(let r=0;r"path"===t.tagName),a=document.createElementNS("http://www.w3.org/2000/svg","path"),l=e.map(t=>t.getAttribute("d")).filter(t=>null!==t).join(" ");a.setAttribute("d",l);let r=e.find(t=>"none"!==t.getAttribute("fill")),i=e.find(t=>"none"!==t.getAttribute("stroke")),n=(0,o.K)((t,e)=>t?.getAttribute(e)??void 0,"getAttr");r&&Object.entries({fill:n(r,"fill"),"fill-opacity":n(r,"fill-opacity")??"1"}).forEach(([t,e])=>{e&&a.setAttribute(t,e)}),i&&Object.entries({stroke:n(i,"stroke"),"stroke-width":n(i,"stroke-width")??"1","stroke-opacity":n(i,"stroke-opacity")??"1"}).forEach(([t,e])=>{e&&a.setAttribute(t,e)});let s=document.createElementNS("http://www.w3.org/2000/svg","g");return s.appendChild(a),s}(0,o.K)(m,"createPathFromPoints"),(0,o.K)($,"generateFullSineWavePoints"),(0,o.K)(b,"generateCirclePoints"),(0,o.K)(k,"mergePaths");var M=(0,o.K)((t,e)=>{var a,l,r=t.x,i=t.y,n=e.x-r,s=e.y-i,h=t.width/2,o=t.height/2;return Math.abs(s)*h>Math.abs(n)*o?(s<0&&(o=-o),a=0===s?0:o*n/s,l=o):(n<0&&(h=-h),a=h,l=0===n?0:h*s/n),{x:r+a,y:i+l}},"intersectRect"),D=(0,o.K)((t,e,a,l,r)=>["M",t+r,e,"H",t+a-r,"A",r,r,"0 0 1",t+a,e+r,"V",e+l-r,"A",r,r,"0 0 1",t+a-r,e+l,"H",t+r,"A",r,r,"0 0 1",t,e+l-r,"V",e+r,"A",r,r,"0 0 1",t+r,e,"Z"].join(" "),"createRoundedRectPathD"),S=(0,o.K)(async(t,e,a,l=!1,i=!1)=>{let n=e||"";"object"==typeof n&&(n=n[0]);let h=(0,s.D7)(),o=(0,s.E)(h);return await (0,r.GZ)(t,n,{style:a,isTitle:l,useHtmlLabels:o,markdown:!1,isNode:i,width:1/0},h)},"createLabel");function A(t,e,a,l){var r=t.x,i=t.y,n=r-l.x,s=i-l.y,h=Math.sqrt(e*e*s*s+a*a*n*n),o=Math.abs(e*a*n/h);l.xMath.abs(g)&&1e-6>Math.abs(y)&&C(g,y))return;let p=r*d-o*i;if(0===p)return;let f=Math.abs(p/2),u=i*c-d*n;return{x:u<0?(u-f)/p:(u+f)/p,y:(u=o*n-r*c)<0?(u-f)/p:(u+f)/p}}}function C(t,e){return t*e>0}function N(t,e,a){let l=t.x,r=t.y,i=[],n=1/0,s=1/0;"function"==typeof e.forEach?e.forEach(function(t){n=Math.min(n,t.x),s=Math.min(s,t.y)}):(n=Math.min(n,e.x),s=Math.min(s,e.y));let h=l-t.width/2-n,o=r-t.height/2-s;for(let l=0;l1&&i.sort(function(t,e){let l=t.x-a.x,r=t.y-a.y,i=Math.sqrt(l*l+r*r),n=e.x-a.x,s=e.y-a.y,h=Math.sqrt(n*n+s*s);return iy,":first-child");return p.attr("class","anchor").attr("style",(0,n.KL)(o)),x(e,p),e.intersect=function(t){return h.R.info("Circle intersect",e,1,t),B.circle(e,1,t)},s}function R(t,e,a,l,r,i,n){let s=Math.atan2(l-e,a-t),h=Math.sqrt(((a-t)/2/r)**2+((l-e)/2/i)**2);if(h>1)throw Error("The given radii are too small to create an arc between the points.");let o=Math.sqrt(1-h**2),d=(t+a)/2+o*i*Math.sin(s)*(n?-1:1),c=(e+l)/2-o*r*Math.cos(s)*(n?-1:1),g=Math.atan2((e-c)/i,(t-d)/r),y=Math.atan2((l-c)/i,(a-d)/r)-g;n&&y<0&&(y+=2*Math.PI),!n&&y>0&&(y-=2*Math.PI);let p=[];for(let t=0;t<20;t++){let e=g+t/19*y,a=d+r*Math.cos(e),l=c+i*Math.sin(e);p.push({x:a,y:l})}return p}function F(t,e,a){let[l,r]=[e,a].sort((t,e)=>e-t);return r*(1-Math.sqrt(1-(t/l/2)**2))}async function P(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i,h=(0,o.K)(t=>t+s,"calcTotalHeight"),d=(0,o.K)(t=>{let e=t/2;return[e/(2.5+t/50),e]},"calcEllipseRadius"),{shapeSvg:g,bbox:y}=await f(t,e,w(e)),p=h(e?.height?e?.height:y.height),[u,$]=d(p),b=F(p,u,$),k=(e?.width?e?.width:y.width)+2*n+b-b,{cssStyles:M}=e,D=[{x:k/2,y:-p/2},{x:-k/2,y:-p/2},...R(-k/2,-p/2,-k/2,p/2,u,$,!1),{x:k/2,y:p/2},...R(k/2,p/2,k/2,-p/2,u,$,!0)],S=c.A.svg(g),A=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(A.roughness=0,A.fillStyle="solid");let K=m(D),v=S.path(K,A),C=g.insert(()=>v,":first-child");return C.attr("class","basic label-container outer-path"),M&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",M),r&&"handDrawn"!==e.look&&C.selectAll("path").attr("style",r),C.attr("transform",`translate(${u/2}, 0)`),x(e,C),e.intersect=function(t){return B.polygon(e,D,t)},g}async function G(t,e,{config:{themeVariables:a}}){let{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:n,bbox:s,label:h}=await f(t,e,w(e)),d=a?.nodeBorder??a?.lineColor??"currentColor",g=e.padding??12,y=Math.max(s.width+2*g,e.width??0,80),p=Math.max(Math.min(.08*y,12),5),u=Math.max(s.height+2*g+p,e.height??0),m=-u/2+p,$=u/2,b=.72*y,k=`M${-y/2},${m} L${-b/2},${$} A${b/2},${p} 0 0 0 ${b/2},${$} L${y/2},${m} A${y/2},${p} 0 0 0 ${-y/2},${m} Z`,{cssStyles:M}=e,D=n.insert("g",":first-child").attr("class","basic label-container");if("handDrawn"===e.look){let t=c.A.svg(n).path(k,(0,l.Fr)(e,{}));D.node()?.appendChild(t),M&&D.attr("style",M)}else D.append("path").attr("d",k).attr("style",i);D.append("ellipse").attr("cx",0).attr("cy",m).attr("rx",y/2).attr("ry",p).attr("style",`fill:none;stroke:${d};stroke-width:1px`),x(e,D);let S=m+($-m)/2;h.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${S-s.height/2-(s.y-(s.top??0))})`);let A=(0,o.K)((t,e,a)=>Array.from({length:13},(l,r)=>{let i=Math.PI-r*Math.PI/12;return{x:t*Math.cos(i),y:e+a*p*Math.sin(i)}}),"arc"),K=[...A(y/2,m,-1),...A(b/2,$,1).reverse()];return e.intersect=function(t){return B.polygon(e,K,t)},n}async function X(t,e){let a,{themeVariables:r}=(0,s.D7)(),i=r.clusterBkg,h=r.clusterBorder,{nodeStyles:o}=(0,l.GX)(e),{shapeSvg:d,bbox:g}=await f(t,e,w(e)),y=e.padding??8,p=g.height,u=Math.max(g.width+2*y,80,e?.width??0),m=Math.max(p+8+20+2*y,e?.height??0),$=-u/2,b=-m/2,k=d.select(".label");if(k&&(e.useHtmlLabels??(0,s.E)((0,s.D7)())?k.attr("transform",`translate(${-g.width/2}, ${-g.height/2+-14})`):k.attr("transform",`translate(0, ${-g.height/2+-14})`)),"handDrawn"===e.look){let t=c.A.svg(d),r=(0,l.Fr)(e,{fill:i,stroke:h,fillStyle:"solid"}),s=t.path(D($,b,u,m,8),r);(a=d.insert(()=>s,":first-child")).attr("class","basic label-container collapsed-group").attr("style",(0,n.KL)(e.cssStyles))}else(a=d.insert("rect",":first-child")).attr("class","basic label-container collapsed-group").attr("style",o).attr("rx",8).attr("ry",8).attr("x",$).attr("y",b).attr("width",u).attr("height",m).attr("fill",i).attr("stroke",h);let M=b+y+p+8;d.append("line").attr("class","collapsed-separator").attr("x1",$+8).attr("y1",M).attr("x2",$+u-8).attr("y2",M).attr("stroke",h).attr("stroke-dasharray","3, 3");let S=M+10;for(let t=-1;t<=1;t++)d.append("circle").attr("class","collapsed-indicator").attr("cx",10*t).attr("cy",S).attr("r",2.5).attr("fill",h);return x(e,a),e.calcIntersect=function(t,e){return B.rect(t,e)},e.intersect=function(t){return B.rect(e,t)},d}function I(t,e,a,l){return t.insert("polygon",":first-child").attr("points",l.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+a/2+")")}(0,o.K)(L,"anchor"),(0,o.K)(R,"generateArcPoints"),(0,o.K)(F,"calculateArcSagitta"),(0,o.K)(P,"bowTieRect"),(0,o.K)(G,"bucket"),(0,o.K)(X,"collapsedGroup"),(0,o.K)(I,"insertPolygonShape");var T=["right","left","up","down"],W="point",E=(0,o.K)(t=>{let e=new Set;for(let a of t)switch(a){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(a)}return e},"expandAndDeduplicateDirections"),H=(0,o.K)(t=>T.filter(e=>t.has(e)).join("|")||W,"getDirectionKey"),j={"right|left|up|down":(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:0,y:0},{x:e,y:0},{x:l/2,y:2*a},{x:l-e,y:0},{x:l,y:0},{x:l,y:-t/3},{x:l+2*a,y:-t/2},{x:l,y:-2*t/3},{x:l,y:-t},{x:l-e,y:-t},{x:l/2,y:-t-2*a},{x:e,y:-t},{x:0,y:-t},{x:0,y:-2*t/3},{x:-2*a,y:-t/2},{x:0,y:-t/3}],"right|left|up|down"),"right|left|up":(0,o.K)(({height:t,midpoint:e,width:a})=>[{x:e,y:0},{x:a-e,y:0},{x:a,y:-t/2},{x:a-e,y:-t},{x:e,y:-t},{x:0,y:-t/2}],"right|left|up"),"right|left|down":(0,o.K)(({height:t,midpoint:e,width:a})=>[{x:0,y:0},{x:e,y:-t},{x:a-e,y:-t},{x:a,y:0}],"right|left|down"),"right|up|down":(0,o.K)(({height:t,midpoint:e,width:a})=>[{x:0,y:0},{x:a,y:-e},{x:a,y:-t+e},{x:0,y:-t}],"right|up|down"),"left|up|down":(0,o.K)(({height:t,midpoint:e,width:a})=>[{x:a,y:0},{x:0,y:-e},{x:0,y:-t+e},{x:a,y:-t}],"left|up|down"),"right|left":(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:e,y:0},{x:e,y:-a},{x:l-e,y:-a},{x:l-e,y:0},{x:l,y:-t/2},{x:l-e,y:-t},{x:l-e,y:-t+a},{x:e,y:-t+a},{x:e,y:-t},{x:0,y:-t/2}],"right|left"),"up|down":(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:l/2,y:0},{x:0,y:-a},{x:e,y:-a},{x:e,y:-t+a},{x:0,y:-t+a},{x:l/2,y:-t},{x:l,y:-t+a},{x:l-e,y:-t+a},{x:l-e,y:-a},{x:l,y:-a}],"up|down"),"right|up":(0,o.K)(({height:t,midpoint:e,width:a})=>[{x:0,y:0},{x:a,y:-e},{x:0,y:-t}],"right|up"),"right|down":(0,o.K)(({height:t,width:e})=>[{x:0,y:0},{x:e,y:0},{x:0,y:-t}],"right|down"),"left|up":(0,o.K)(({height:t,midpoint:e,width:a})=>[{x:a,y:0},{x:0,y:-e},{x:a,y:-t}],"left|up"),"left|down":(0,o.K)(({height:t,width:e})=>[{x:e,y:0},{x:0,y:0},{x:e,y:-t}],"left|down"),right:(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:e,y:-a},{x:e,y:-a},{x:l-e,y:-a},{x:l-e,y:0},{x:l,y:-t/2},{x:l-e,y:-t},{x:l-e,y:-t+a},{x:e,y:-t+a},{x:e,y:-t+a}],"right"),left:(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:e,y:0},{x:e,y:-a},{x:l-e,y:-a},{x:l-e,y:-t+a},{x:e,y:-t+a},{x:e,y:-t},{x:0,y:-t/2}],"left"),up:(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:e,y:-a},{x:e,y:-t+a},{x:0,y:-t+a},{x:l/2,y:-t},{x:l,y:-t+a},{x:l-e,y:-t+a},{x:l-e,y:-a}],"up"),down:(0,o.K)(({height:t,midpoint:e,padding:a,width:l})=>[{x:l/2,y:0},{x:0,y:-a},{x:e,y:-a},{x:e,y:-t+a},{x:l-e,y:-t+a},{x:l-e,y:-a},{x:l,y:-a}],"down"),[W]:()=>[{x:0,y:0}]},q=(0,o.K)((t,e,a,l)=>{let r=E(t),i=(a.padding??0)/2,n=e.height+4*i,s=n/2,h=l??e.width+2*s+2*i;return(j[H(r)]??j[W])({height:n,midpoint:s,padding:i,width:h})},"getArrowPoints");async function _(t,e){let{shapeSvg:a,bbox:l}=await f(t,e,w(e)),r=e.padding??0,i=l.height+2*r,n=i/2,s=l.width+2*n+r,h=e.width??0,o=e.positioned&&(e.widthInColumns??1)>1&&h>s?h:s,d=q(e.directions??[],l,e,o),c=I(a,o,i,d);return c.attr("style",e.style??null),x(e,c),e.intersect=function(t){return B.polygon(e,d,t)},a}async function z(t,e,{config:{themeVariables:a}}){let{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:n,bbox:s,label:h}=await f(t,e,w(e)),o=a?.nodeBorder??a?.lineColor??"currentColor",d=e.padding??12,g=Math.max(s.width+2*d,e.width??0,90),y=Math.max(s.height+2*d+18,e.height??0),p=-y/2,{cssStyles:u}=e,m=n.insert("g",":first-child").attr("class","basic label-container");if("handDrawn"===e.look){let t=c.A.svg(n).path(D(-g/2,p,g,y,12),(0,l.Fr)(e,{}));m.node()?.appendChild(t),u&&m.attr("style",u)}else m.append("rect").attr("x",-g/2).attr("y",p).attr("width",g).attr("height",y).attr("rx",12).attr("ry",12).attr("style",i);m.append("line").attr("x1",-g/2).attr("y1",p+18).attr("x2",g/2).attr("y2",p+18).attr("style",`stroke:${o};stroke-width:1px`);for(let t=0;t<3;t++)m.append("circle").attr("cx",-g/2+12+9*t).attr("cy",p+9).attr("r",2.5).attr("style",`fill:${o};stroke:none`);m.append("rect").attr("class","browser-address-bar").attr("x",-g/2+44).attr("y",p+4).attr("width",Math.max(g-56,10)).attr("height",10).attr("rx",3).attr("ry",3).attr("style",`fill:none;stroke:${o};stroke-width:1px;opacity:0.6`),x(e,m);let $=p+18+(y-18)/2;return h.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${$-s.height/2-(s.y-(s.top??0))})`),e.intersect=function(t){return B.rect(e,t)},n}async function Z(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let n=e.padding??0,s="neo"===e.look?28:n,h="neo"===e.look?24:n,{shapeSvg:o,bbox:d}=await f(t,e,w(e)),g=(e?.width??d.width)+("neo"===e.look?2*s:s+12),y=(e?.height??d.height)+("neo"===e.look?2*h:h),p=-y,u=[{x:12,y:p},{x:g,y:p},{x:g,y:0},{x:0,y:0},{x:0,y:p+12},{x:12,y:p}],{cssStyles:$}=e;if("handDrawn"===e.look){let t=c.A.svg(o),r=(0,l.Fr)(e,{}),i=m(u),n=t.path(i,r);a=o.insert(()=>n,":first-child").attr("transform",`translate(${-g/2}, ${y/2})`),$&&a.attr("style",$)}else a=I(o,g,y,u);return i&&a.attr("style",i),x(e,a),e.intersect=function(t){return B.polygon(e,u,t)},o}function O(t,e){let{nodeStyles:a}=(0,l.GX)(e);e.label="";let r=t.insert("g").attr("class",w(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,n=Math.max(28,e.width??0),s=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}],h=c.A.svg(r),o=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(o.roughness=0,o.fillStyle="solid");let d=m(s),g=h.path(d,o),y=r.insert(()=>g,":first-child");return i&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",i),a&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",a),e.width=28,e.height=28,e.intersect=function(t){return B.polygon(e,s,t)},r}async function V(t,e,a){let r,{labelStyles:i,nodeStyles:s}=(0,l.GX)(e);e.labelStyle=i;let{shapeSvg:o,bbox:d,halfPadding:g}=await f(t,e,w(e)),y=a?.padding??g,p="neo"===e.look?d.width/2+32:d.width/2+y,{cssStyles:u}=e;if("handDrawn"===e.look){let t=c.A.svg(o),a=(0,l.Fr)(e,{}),i=t.circle(0,0,2*p,a);(r=o.insert(()=>i,":first-child")).attr("class","basic label-container").attr("style",(0,n.KL)(u))}else r=o.insert("circle",":first-child").attr("class","basic label-container").attr("style",s).attr("r",p).attr("cx",0).attr("cy",0);return x(e,r),e.calcIntersect=function(t,e){let a=t.width/2;return B.circle(t,a,e)},e.intersect=function(t){return h.R.info("Circle intersect",e,p,t),B.circle(e,p,t)},o}async function Y(t,e){let a=["node",e.cssClasses,e.class].filter(Boolean).join(" "),{shapeSvg:l,bbox:r,halfPadding:i}=await f(t,e,a),n=l.insert("rect",":first-child"),s=e.padding??0,h=e.positioned?e.width??0:r.width+s,o=e.positioned?e.height??0:r.height+s,d=e.positioned?-h/2:-r.width/2-i,c=e.positioned?-o/2:-r.height/2-i;return n.attr("class","basic cluster composite label-container").attr("style",e.style??null).attr("rx",e.rx??null).attr("ry",e.ry??null).attr("x",d).attr("y",c).attr("width",h).attr("height",o),x(e,n),e.intersect=function(t){return B.rect(e,t)},l}async function U(t,e,{config:{themeVariables:a}}){let{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:n,bbox:s,label:h}=await f(t,e,w(e)),o=a?.nodeBorder??a?.lineColor??"currentColor",d=e.padding??12,g=Math.max(s.width+2*d,e.width??0,90),y=Math.max(s.height+2*d+20,e.height??0),p=-y/2,{cssStyles:u}=e,m=n.insert("g",":first-child").attr("class","basic label-container");if("handDrawn"===e.look){let t=c.A.svg(n).path(D(-g/2,p,g,y,12),(0,l.Fr)(e,{}));m.node()?.appendChild(t),u&&m.attr("style",u)}else m.append("rect").attr("x",-g/2).attr("y",p).attr("width",g).attr("height",y).attr("rx",12).attr("ry",12).attr("style",i);m.append("text").attr("x",-g/2+12).attr("y",p+16).attr("class","console-glyph").attr("style",`font-family:monospace;font-weight:bold;font-size:14px;fill:${o}`).text(">_"),x(e,m);let $=p+20+(y-20)/2;return h.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${$-s.height/2-(s.y-(s.top??0))})`),e.intersect=function(t){return B.rect(e,t)},n}function J(t){let e=Math.cos(Math.PI/4),a=Math.sin(Math.PI/4),l=2*t,r={x:l/2*e,y:l/2*a},i={x:-(l/2)*e,y:l/2*a},n={x:-(l/2)*e,y:-(l/2)*a},s={x:l/2*e,y:-(l/2)*a};return`M ${i.x},${i.y} L ${s.x},${s.y}
- M ${r.x},${r.y} L ${n.x},${n.y}`}function Q(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a,e.label="";let i=t.insert("g").attr("class",w(e)).attr("id",e.domId??e.id),n=Math.max(30,e?.width??0),{cssStyles:s}=e,o=c.A.svg(i),d=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(d.roughness=0,d.fillStyle="solid");let g=o.circle(0,0,2*n,d),y=J(n),p=o.path(y,d),f=i.insert(()=>g,":first-child");return f.insert(()=>p),f.attr("class","outer-path"),s&&"handDrawn"!==e.look&&f.selectAll("path").attr("style",s),r&&"handDrawn"!==e.look&&f.selectAll("path").attr("style",r),x(e,f),e.intersect=function(t){return h.R.info("crossedCircle intersect",e,{radius:n,point:t}),B.circle(e,n,t)},i}function tt(t,e,a,l=100,r=0,i=180){let n=[],s=r*Math.PI/180,h=(i*Math.PI/180-s)/(l-1);for(let r=0;rA,":first-child").attr("stroke-opacity",0),K.insert(()=>D,":first-child"),K.attr("class","text"),p&&"handDrawn"!==e.look&&K.selectAll("path").attr("style",p),r&&"handDrawn"!==e.look&&K.selectAll("path").attr("style",r),K.attr("transform",`translate(${y}, 0)`),s.attr("transform",`translate(${-d/2+y-(n.x-(n.left??0))},${-g/2+(e.padding??0)/2-(n.y-(n.top??0))})`),x(e,K),e.intersect=function(t){return B.polygon(e,$,t)},i}function ta(t,e,a,l=100,r=0,i=180){let n=[],s=r*Math.PI/180,h=(i*Math.PI/180-s)/(l-1);for(let r=0;rA,":first-child").attr("stroke-opacity",0),K.insert(()=>D,":first-child"),K.attr("class","text"),p&&"handDrawn"!==e.look&&K.selectAll("path").attr("style",p),r&&"handDrawn"!==e.look&&K.selectAll("path").attr("style",r),K.attr("transform",`translate(${-y}, 0)`),s.attr("transform",`translate(${-d/2+(e.padding??0)/2-(n.x-(n.left??0))},${-g/2+(e.padding??0)/2-(n.y-(n.top??0))})`),x(e,K),e.intersect=function(t){return B.polygon(e,$,t)},i}function tr(t,e,a,l=100,r=0,i=180){let n=[],s=r*Math.PI/180,h=(i*Math.PI/180-s)/(l-1);for(let r=0;rC,":first-child").attr("stroke-opacity",0),N.insert(()=>S,":first-child"),N.insert(()=>K,":first-child"),N.attr("class","text"),p&&"handDrawn"!==e.look&&N.selectAll("path").attr("style",p),r&&"handDrawn"!==e.look&&N.selectAll("path").attr("style",r),N.attr("transform",`translate(${y-y/4}, 0)`),s.attr("transform",`translate(${-d/2+(e.padding??0)/2-(n.x-(n.left??0))},${-g/2+(e.padding??0)/2-(n.y-(n.top??0))})`),x(e,N),e.intersect=function(t){return B.polygon(e,b,t)},i}async function tn(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i,{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=Math.max(20,(o.width+2*n)*1.25,e?.width??0),g=Math.max(5,o.height+2*s,e?.height??0),y=g/2,{cssStyles:p}=e,u=c.A.svg(h),$=(0,l.Fr)(e,{});"handDrawn"!==e.look&&($.roughness=0,$.fillStyle="solid");let k=d-y,M=g/4,D=[{x:k,y:0},{x:M,y:0},{x:0,y:g/2},{x:M,y:g},{x:k,y:g},...b(-k,-g/2,y,50,270,90)],S=m(D),A=u.path(S,$),K=h.insert(()=>A,":first-child");return K.attr("class","basic label-container outer-path"),p&&"handDrawn"!==e.look&&K.selectChildren("path").attr("style",p),r&&"handDrawn"!==e.look&&K.selectChildren("path").attr("style",r),K.attr("transform",`translate(${-d/2}, ${-g/2})`),x(e,K),e.intersect=function(t){return B.polygon(e,D,t)},h}async function ts(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let{shapeSvg:i,bbox:n,label:s}=await f(t,e,w(e)),h=e.padding??20,o=Math.max(n.width+2*h,e.width??0,100),d=Math.min(Math.max(.23*o,16),56),g=.27*d,y=Math.max(n.height+2*h,e.height?e.height-(2*d-g):0),p=Math.min(.177*o,.45*y),u=y+2*d-g,m=-u/2,$=m+2*d-g,k=i.insert("g",":first-child").attr("class","basic label-container"),{cssStyles:M}=e;if("handDrawn"===e.look){let t=c.A.svg(i),a=(0,l.Fr)(e,{}),r=t.path(D(-o/2,$,o,y,p),a),n=t.circle(0,m+d,2*d,a);k.insert(()=>n,":first-child"),k.insert(()=>r,":first-child"),M&&k.attr("style",M)}else k.append("rect").attr("x",-o/2).attr("y",$).attr("width",o).attr("height",y).attr("rx",p).attr("ry",p).attr("style",r),k.append("circle").attr("cx",0).attr("cy",m+d).attr("r",d).attr("style",r);x(e,k);let S=$+y/2;s.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${S-n.height/2-(n.y-(n.top??0))})`);let A=m+d,K=180*Math.asin(Math.min(1,($-A)/d))/Math.PI,v=[...b(0,-A,d,24,180+K,-K),...b(-(-o/2+p),-($+p),p,12,90,0),...b(-(-o/2+p),-(u/2-p),p,12,360,270),...b(-(o/2-p),-(u/2-p),p,12,270,180),...b(-(o/2-p),-($+p),p,12,180,90)];return e.intersect=function(t){return B.polygon(e,v,t)},i}(0,o.K)(_,"block_arrow"),(0,o.K)(z,"browser"),(0,o.K)(Z,"card"),(0,o.K)(O,"choice"),(0,o.K)(V,"circle"),(0,o.K)(Y,"composite"),(0,o.K)(U,"consoleWindow"),(0,o.K)(J,"createLine"),(0,o.K)(Q,"crossedCircle"),(0,o.K)(tt,"generateCirclePoints"),(0,o.K)(te,"curlyBraceLeft"),(0,o.K)(ta,"generateCirclePoints"),(0,o.K)(tl,"curlyBraceRight"),(0,o.K)(tr,"generateCirclePoints"),(0,o.K)(ti,"curlyBraces"),(0,o.K)(tn,"curvedTrapezoid"),(0,o.K)(ts,"person");var th=(0,o.K)((t,e,a,l,r,i)=>`M${t},${e+i} a${r},${i} 0,0,0 ${a},0 a${r},${i} 0,0,0 ${-a},0 l0,${l} a${r},${i} 0,0,0 ${a},0 l0,${-l}`,"createCylinderPathD"),to=(0,o.K)((t,e,a,l,r,i)=>`M${t},${e+i} M${t+a},${e+i} a${r},${i} 0,0,0 ${-a},0 l0,${l} a${r},${i} 0,0,0 ${a},0 l0,${-l}`,"createOuterCylinderPathD"),td=(0,o.K)((t,e,a,l,r,i)=>`M${t-a/2},${-l/2} a${r},${i} 0,0,0 ${a},0`,"createInnerCylinderPathD");async function tc(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let s=e.padding??0,h="neo"===e.look?24:s,o="neo"===e.look?24:s,d=e.width??0;e.width&&(e.width=e.width-o,e.width<8&&(e.width=8)),e.height&&(e.height=e.height-h-d/2/(2.5+d/50)*3,e.height<8&&(e.height=8));let{shapeSvg:g,bbox:y,label:p}=await f(t,e,w(e)),u=Math.max(e.width??0,y.width)+o,m=u/2,$=m/(2.5+u/50),b=Math.max(e.height??0,y.height)+h+$,{cssStyles:k}=e;if("handDrawn"===e.look){let t=c.A.svg(g),r=to(0,0,u,b,m,$),i=td(0,$,u,b,m,$),n=(0,l.Fr)(e,{}),s=t.path(r,n),h=t.path(i,(0,l.Fr)(e,{fill:"none"}));a=g.insert(()=>h,":first-child"),(a=g.insert(()=>s,":first-child")).attr("class","basic label-container"),k&&a.attr("style",k)}else{let t=th(0,0,u,b,m,$);a=g.insert("path",":first-child").attr("d",t).attr("class","basic label-container outer-path").attr("style",(0,n.KL)(k)).attr("style",i)}return a.attr("label-offset-y",$),a.attr("transform",`translate(${-u/2}, ${-(b/2+$)})`),x(e,a),p.attr("transform",`translate(${-(y.width/2)-(y.x-(y.left??0))}, ${-(y.height/2)+(e.padding??0)/1.5-(y.y-(y.top??0))})`),e.intersect=function(t){let a=B.rect(e,t),l=a.x-(e.x??0);if(0!=m&&(Math.abs(l)<(e.width??0)/2||Math.abs(l)==(e.width??0)/2&&Math.abs(a.y-(e.y??0))>(e.height??0)/2-$)){let r=$*$*(1-l*l/(m*m));r>0&&(r=Math.sqrt(r)),r=$-r,t.y-(e.y??0)>0&&(r=-r),a.y+=r}return a},g}async function tg(t,e,a){let r,{labelStyles:i,nodeStyles:s}=(0,l.GX)(e);e.labelStyle=i;let{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=Math.max(o.width+2*a.labelPaddingX,e?.width||0),g=Math.max(o.height+2*a.labelPaddingY,e?.height||0),y=-d/2,p=-g/2,{rx:u,ry:m}=e,{cssStyles:$}=e;if(a?.rx&&a.ry&&(u=a.rx,m=a.ry),"handDrawn"===e.look){let t=c.A.svg(h),a=(0,l.Fr)(e,{}),i=u||m?t.path(D(y,p,d,g,u||0),a):t.rectangle(y,p,d,g,a);(r=h.insert(()=>i,":first-child")).attr("class","basic label-container").attr("style",(0,n.KL)($))}else(r=h.insert("rect",":first-child")).attr("class","basic label-container").attr("style",s).attr("rx",(0,n.KL)(u)).attr("ry",(0,n.KL)(m)).attr("x",y).attr("y",p).attr("width",d).attr("height",g);return x(e,r,"handDrawn"===e.look?void 0:{width:d,height:g}),e.calcIntersect=function(t,e){return B.rect(t,e)},e.intersect=function(t){return B.rect(e,t)},h}async function ty(t,e){let{cssClasses:a,labelPaddingX:r,labelPaddingY:i,padding:n,width:s,height:h}=e,o=await tg(t,e,{rx:0,ry:0,classes:a??"",labelPaddingX:r??(n??0)*2,labelPaddingY:i??n??0});if("handDrawn"===e.look){let t=c.A.svg(o),a=(0,l.Fr)(e,{}),r=o.select(".basic.label-container > path:nth-child(2)"),i=r.node();if(!i)return o;let n=null;return i instanceof SVGGraphicsElement&&(n=i.getBBox(),o.insert(()=>t.line(n.x,n.y,n.x+n.width,n.y,a),".basic.label-container g.label"),o.insert(()=>t.line(n.x,n.y+n.height,n.x+n.width,n.y+n.height,a),".basic.label-container g.label"),r.remove()),o}let d=o.select(".basic.label-container"),g=(Number(d.attr("width"))||s)??0,y=(Number(d.attr("height"))||h)??0;return g>0&&y>0&&d.attr("stroke-dasharray",`${g} ${y}`),o}async function tp(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i="neo"===e.look?16:e.padding??0,n="neo"===e.look?16:e.padding??0,{shapeSvg:s,bbox:h,label:o}=await f(t,e,w(e)),d=h.width+i,g=h.height+n,y=.2*g,p=-d/2,u=-g/2-y/2,{cssStyles:m}=e,$=c.A.svg(s),b=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(b.roughness=0,b.fillStyle="solid");let k=$.polygon([{x:p,y:u+y},{x:-p,y:u+y},{x:-p,y:-u},{x:p,y:-u},{x:p,y:u},{x:-p,y:u},{x:-p,y:u+y}].map(t=>[t.x,t.y]),b),M=s.insert(()=>k,":first-child");return M.attr("class","basic label-container outer-path"),m&&"handDrawn"!==e.look&&M.selectAll("path").attr("style",m),r&&"handDrawn"!==e.look&&M.selectAll("path").attr("style",r),o.attr("transform",`translate(${p+(e.padding??0)/2-(h.x-(h.left??0))}, ${u+y+(e.padding??0)/2-(h.y-(h.top??0))})`),x(e,M),e.intersect=function(t){return B.rect(e,t)},s}async function tf(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e),s="neo"===e.look?12:5;e.labelStyle=r;let o=e.padding??0,d="neo"===e.look?16:o,{shapeSvg:g,bbox:y}=await f(t,e,w(e)),p=(e?.width?e?.width/2:y.width/2)+(d??0),u=p-s,{cssStyles:m}=e;if("handDrawn"===e.look){let t=c.A.svg(g),r=(0,l.Fr)(e,{roughness:.2,strokeWidth:2.5}),i=(0,l.Fr)(e,{roughness:.2,strokeWidth:1.5}),s=t.circle(0,0,2*p,r),h=t.circle(0,0,2*u,i);(a=g.insert("g",":first-child")).attr("class",(0,n.KL)(e.cssClasses)).attr("style",(0,n.KL)(m)),a.node()?.appendChild(s),a.node()?.appendChild(h)}else{let t=(a=g.insert("g",":first-child")).insert("circle",":first-child"),e=a.insert("circle");a.attr("class","basic label-container").attr("style",i),t.attr("class","outer-circle").attr("style",i).attr("r",p).attr("cx",0).attr("cy",0),e.attr("class","inner-circle").attr("style",i).attr("r",u).attr("cx",0).attr("cy",0)}return x(e,a),e.intersect=function(t){return h.R.info("DoubleCircle intersect",e,p,t),B.circle(e,p,t)},g}function tu(t,e,{config:{themeVariables:a}}){let{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.label="",e.labelStyle=r;let n=t.insert("g").attr("class",w(e)).attr("id",e.domId??e.id),{cssStyles:s}=e,o=c.A.svg(n),{nodeBorder:d}=a,g=(0,l.Fr)(e,{fillStyle:"solid"});"handDrawn"!==e.look&&(g.roughness=0);let y=o.circle(0,0,14,g),p=n.insert(()=>y,":first-child");return p.selectAll("path").attr("style",`fill: ${d} !important;`),s&&s.length>0&&"handDrawn"!==e.look&&p.selectAll("path").attr("style",s),i&&"handDrawn"!==e.look&&p.selectAll("path").attr("style",i),x(e,p),e.intersect=function(t){return h.R.info("filledCircle intersect",e,{radius:7,point:t}),B.circle(e,7,t)},n}async function tx(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?2*i:i;(e.width||e.height)&&(e.height=e?.height??0,e.height<10&&(e.height=10),e.width=(e?.width??0)-n-n/2,e.width<10&&(e.width=10));let{shapeSvg:s,bbox:o,label:d}=await f(t,e,w(e)),g=(e?.width?e?.width:o.width)+(n??0),y=e?.height?e?.height:g+o.height,p=[{x:0,y:-y},{x:y,y:-y},{x:y/2,y:0}],{cssStyles:u}=e,$=c.A.svg(s),b=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(b.roughness=0,b.fillStyle="solid");let k=m(p),M=$.path(k,b),D=s.insert(()=>M,":first-child").attr("transform",`translate(${-y/2}, ${y/2})`).attr("class","outer-path");return u&&"handDrawn"!==e.look&&D.selectChildren("path").attr("style",u),r&&"handDrawn"!==e.look&&D.selectChildren("path").attr("style",r),e.width=g,e.height=y,x(e,D),d.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-y/2+(e.padding??0)/2+(o.y-(o.top??0))})`),e.intersect=function(t){return h.R.info("Triangle intersect",e,p,t),B.polygon(e,p,t)},s}async function tw(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:n,bbox:s,label:h}=await f(t,e,w(e)),o=e.padding??12,d=Math.max(s.width+2*o,e.width??0,90),g=s.height+2*o,y=Math.max(Math.min(.16*g,14),8),p=Math.max(g+y,e.height??0),u=p-y,m=Math.max(.38*d,28),$=-p/2,b=[{x:-d/2,y:$},{x:-d/2+m,y:$},{x:-d/2+m,y:$+y},{x:d/2,y:$+y},{x:d/2,y:p/2},{x:-d/2,y:p/2}],k=[`M${b[0].x},${b[0].y}`,...b.slice(1).map(t=>`L${t.x},${t.y}`),"Z"].join(" "),{cssStyles:M}=e;if("handDrawn"===e.look){let t=c.A.svg(n).path(k,(0,l.Fr)(e,{}));a=n.insert(()=>t,":first-child").attr("class","basic label-container"),M&&a.attr("style",M)}else a=n.insert("path",":first-child").attr("d",k).attr("class","basic label-container").attr("style",i);return"handDrawn"===e.look?x(e,a):x(e,a,{width:d,height:p}),h.attr("transform",`translate(${-(s.width/2)-(s.x-(s.left??0))}, ${$+y+u/2-s.height/2-(s.y-(s.top??0))})`),e.intersect=function(t){return B.polygon(e,b,t)},n}function tm(t,e,{dir:a,config:{state:r,themeVariables:i}}){let{nodeStyles:n}=(0,l.GX)(e);e.label="";let s=t.insert("g").attr("class",w(e)).attr("id",e.domId??e.id),{cssStyles:h}=e,o=Math.max(70,e?.width??0),d=Math.max(10,e?.height??0);"LR"===a&&(o=Math.max(10,e?.width??0),d=Math.max(70,e?.height??0));let g=-1*o/2,y=-1*d/2,p=c.A.svg(s),f=(0,l.Fr)(e,{stroke:i.lineColor,fill:i.lineColor});"handDrawn"!==e.look&&(f.roughness=0,f.fillStyle="solid");let u=p.rectangle(g,y,o,d,f),m=s.insert(()=>u,":first-child");h&&"handDrawn"!==e.look&&m.selectAll("path").attr("style",h),n&&"handDrawn"!==e.look&&m.selectAll("path").attr("style",n),x(e,m);let $=r?.padding??0;return e.width&&e.height&&(e.width+=$/2||0,e.height+=$/2||0),e.intersect=function(t){return B.rect(e,t)},s}async function t$(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i="neo"===e.look?16:e.padding??0,n="neo"===e.look?12:e.padding??0;(e.width||e.height)&&(e.height=(e?.height??0)-2*n,e.height<10&&(e.height=10),e.width=(e?.width??0)-2*i,e.width<15&&(e.width=15));let{shapeSvg:s,bbox:o}=await f(t,e,w(e)),d=(e?.width?e?.width:Math.max(15,o.width))+2*i,g=(e?.height?e?.height:Math.max(10,o.height))+2*n,y=g/2,{cssStyles:p}=e,u=c.A.svg(s),$=(0,l.Fr)(e,{});"handDrawn"!==e.look&&($.roughness=0,$.fillStyle="solid");let k=[{x:-d/2,y:-g/2},{x:d/2-y,y:-g/2},...b(-d/2+y,0,y,50,90,270),{x:d/2-y,y:g/2},{x:-d/2,y:g/2}],M=m(k),D=u.path(M,$),S=s.insert(()=>D,":first-child");return S.attr("class","basic label-container outer-path"),p&&"handDrawn"!==e.look&&S.selectChildren("path").attr("style",p),r&&"handDrawn"!==e.look&&S.selectChildren("path").attr("style",r),x(e,S),e.intersect=function(t){return h.R.info("Pill intersect",e,{radius:y,point:t}),B.polygon(e,k,t)},s}(0,o.K)(tc,"cylinder"),(0,o.K)(tg,"drawRect"),(0,o.K)(ty,"datastore"),(0,o.K)(tp,"dividedRectangle"),(0,o.K)(tf,"doublecircle"),(0,o.K)(tu,"filledCircle"),(0,o.K)(tx,"flippedTriangle"),(0,o.K)(tw,"folder"),(0,o.K)(tm,"forkJoin"),(0,o.K)(t$,"halfRoundedRectangle");var tb=(0,o.K)((t,e,a,l,r)=>`M${t+r},${e} L${t+a-r},${e} L${t+a},${e-l/2} L${t+a-r},${e-l} L${t+r},${e-l} L${t},${e-l/2} Z`,"createHexagonPathD");async function tk(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e),n="neo"===e.look?3.5:4;e.labelStyle=r;let s=e.padding??0,h="neo"===e.look?70:s,o="neo"===e.look?32:s;if(e.width||e.height){let t=e.height??0;e.width=(e?.width??0)-t/n*2-o,e.height=(e.height??0)-h}let{shapeSvg:d,bbox:g}=await f(t,e,w(e)),y=(e?.height?e?.height:g.height)+h,p=y/n,u=(e?.width?e?.width:g.width)+2*p+o,m=[{x:p,y:0},{x:u-p,y:0},{x:u,y:-y/2},{x:u-p,y:-y},{x:p,y:-y},{x:0,y:-y/2}],{cssStyles:$}=e;if("handDrawn"===e.look){let t=c.A.svg(d),r=(0,l.Fr)(e,{}),i=tb(0,0,u,y,p),n=t.path(i,r);a=d.insert(()=>n,":first-child").attr("transform",`translate(${-u/2}, ${y/2})`),$&&a.attr("style",$)}else a=I(d,u,y,m);return i&&a.attr("style",i),e.width=u,e.height=y,x(e,a),e.intersect=function(t){return B.polygon(e,m,t)},d}async function tM(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.label="",e.labelStyle=a;let{shapeSvg:i}=await f(t,e,w(e)),n=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:o}=e,d=c.A.svg(i),g=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(g.roughness=0,g.fillStyle="solid");let y=[{x:0,y:0},{x:n,y:0},{x:0,y:s},{x:n,y:s}],p=m(y),u=d.path(p,g),$=i.insert(()=>u,":first-child");return $.attr("class","basic label-container outer-path"),o&&"handDrawn"!==e.look&&$.selectChildren("path").attr("style",o),r&&"handDrawn"!==e.look&&$.selectChildren("path").attr("style",r),$.attr("transform",`translate(${-n/2}, ${-s/2})`),x(e,$),e.intersect=function(t){return h.R.info("Pill intersect",e,{points:y}),B.polygon(e,y,t)},i}async function tD(t,e,{config:{themeVariables:a,flowchart:r}}){let{labelStyles:n}=(0,l.GX)(e);e.labelStyle=n;let s=Math.max(e.assetHeight??48,e.assetWidth??48);e.width=Math.max(s,r?.wrappingWidth??0);let{shapeSvg:o,bbox:d,label:g}=await f(t,e,"icon-shape default"),y="t"===e.pos,{nodeBorder:p}=a,{stylesMap:u}=(0,l.WW)(e),w=-s/2,m=-s/2,$=8*!!e.label,b=c.A.svg(o),k=(0,l.Fr)(e,{stroke:"none",fill:"none"});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let M=b.rectangle(w,m,s,s,k),D=Math.max(s,d.width),S=s+d.height+$,A=b.rectangle(-D/2,-S/2,D,S,{...k,fill:"transparent",stroke:"none"}),K=o.insert(()=>M,":first-child"),v=o.insert(()=>A);if(e.icon){let t=o.append("g");t.html(`${await (0,i.WY)(e.icon,{height:s,width:s,fallbackPrefix:""})} `);let a=t.node().getBBox(),l=a.width,r=a.height,n=a.x,h=a.y;t.attr("transform",`translate(${-l/2-n},${y?d.height/2+$/2-r/2-h:-d.height/2-$/2-r/2-h})`),t.attr("style",`color: ${u.get("stroke")??p};`)}return g.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${y?-S/2:S/2-d.height})`),K.attr("transform",`translate(0,${y?d.height/2+$/2:-d.height/2-$/2})`),x(e,v),e.intersect=function(t){if(h.R.info("iconSquare intersect",e,t),!e.label)return B.rect(e,t);let a=e.x??0,l=e.y??0,r=e.height??0,i=[];return i=y?[{x:a-d.width/2,y:l-r/2},{x:a+d.width/2,y:l-r/2},{x:a+d.width/2,y:l-r/2+d.height+$},{x:a+s/2,y:l-r/2+d.height+$},{x:a+s/2,y:l+r/2},{x:a-s/2,y:l+r/2},{x:a-s/2,y:l-r/2+d.height+$},{x:a-d.width/2,y:l-r/2+d.height+$}]:[{x:a-s/2,y:l-r/2},{x:a+s/2,y:l-r/2},{x:a+s/2,y:l-r/2+s},{x:a+d.width/2,y:l-r/2+s},{x:a+d.width/2/2,y:l+r/2},{x:a-d.width/2,y:l+r/2},{x:a-d.width/2,y:l-r/2+s},{x:a-s/2,y:l-r/2+s}],B.polygon(e,i,t)},o}async function tS(t,e,{config:{themeVariables:a,flowchart:r}}){let{labelStyles:n}=(0,l.GX)(e);e.labelStyle=n;let s=Math.max(e.assetHeight??48,e.assetWidth??48);e.width=Math.max(s,r?.wrappingWidth??0);let{shapeSvg:o,bbox:d,label:g}=await f(t,e,"icon-shape default"),y=8*!!e.label,p="t"===e.pos,{nodeBorder:u,mainBkg:w}=a,{stylesMap:m}=(0,l.WW)(e),$=c.A.svg(o),b=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(b.roughness=0,b.fillStyle="solid"),b.stroke=m.get("fill")??w;let k=o.append("g");e.icon&&k.html(`${await (0,i.WY)(e.icon,{height:s,width:s,fallbackPrefix:""})} `);let M=k.node().getBBox(),D=M.width,S=M.height,A=M.x,K=M.y,v=Math.max(D,S)*Math.SQRT2+40,C=$.circle(0,0,v,b),N=Math.max(v,d.width),L=v+d.height+y,R=$.rectangle(-N/2,-L/2,N,L,{...b,fill:"transparent",stroke:"none"}),F=o.insert(()=>C,":first-child"),P=o.insert(()=>R);return k.attr("transform",`translate(${-D/2-A},${p?d.height/2+y/2-S/2-K:-d.height/2-y/2-S/2-K})`),k.attr("style",`color: ${m.get("stroke")??u};`),g.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${p?-L/2:L/2-d.height})`),F.attr("transform",`translate(0,${p?d.height/2+y/2:-d.height/2-y/2})`),x(e,P),e.intersect=function(t){return h.R.info("iconSquare intersect",e,t),B.rect(e,t)},o}async function tA(t,e,{config:{themeVariables:a,flowchart:r}}){let{labelStyles:n}=(0,l.GX)(e);e.labelStyle=n;let s=Math.max(e.assetHeight??48,e.assetWidth??48);e.width=Math.max(s,r?.wrappingWidth??0);let{shapeSvg:o,bbox:d,halfPadding:g,label:y}=await f(t,e,"icon-shape default"),p="t"===e.pos,u=s+2*g,w=s+2*g,{nodeBorder:m,mainBkg:$}=a,{stylesMap:b}=(0,l.WW)(e),k=8*!!e.label,M=c.A.svg(o),S=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(S.roughness=0,S.fillStyle="solid"),S.stroke=b.get("fill")??$;let A=M.path(D(-w/2,-u/2,w,u,5),S),K=Math.max(w,d.width),v=u+d.height+k,C=M.rectangle(-K/2,-v/2,K,v,{...S,fill:"transparent",stroke:"none"}),N=o.insert(()=>A,":first-child").attr("class","icon-shape2"),L=o.insert(()=>C);if(e.icon){let t=o.append("g");t.html(`${await (0,i.WY)(e.icon,{height:s,width:s,fallbackPrefix:""})} `);let a=t.node().getBBox(),l=a.width,r=a.height,n=a.x,h=a.y;t.attr("transform",`translate(${-l/2-n},${p?d.height/2+k/2-r/2-h:-d.height/2-k/2-r/2-h})`),t.attr("style",`color: ${b.get("stroke")??m};`)}return y.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${p?-v/2:v/2-d.height})`),N.attr("transform",`translate(0,${p?d.height/2+k/2:-d.height/2-k/2})`),x(e,L),e.intersect=function(t){if(h.R.info("iconSquare intersect",e,t),!e.label)return B.rect(e,t);let a=e.x??0,l=e.y??0,r=e.height??0,i=[];return i=p?[{x:a-d.width/2,y:l-r/2},{x:a+d.width/2,y:l-r/2},{x:a+d.width/2,y:l-r/2+d.height+k},{x:a+w/2,y:l-r/2+d.height+k},{x:a+w/2,y:l+r/2},{x:a-w/2,y:l+r/2},{x:a-w/2,y:l-r/2+d.height+k},{x:a-d.width/2,y:l-r/2+d.height+k}]:[{x:a-w/2,y:l-r/2},{x:a+w/2,y:l-r/2},{x:a+w/2,y:l-r/2+u},{x:a+d.width/2,y:l-r/2+u},{x:a+d.width/2/2,y:l+r/2},{x:a-d.width/2,y:l+r/2},{x:a-d.width/2,y:l-r/2+u},{x:a-w/2,y:l-r/2+u}],B.polygon(e,i,t)},o}async function tK(t,e,{config:{themeVariables:a,flowchart:r}}){let{labelStyles:n}=(0,l.GX)(e);e.labelStyle=n;let s=Math.max(e.assetHeight??48,e.assetWidth??48);e.width=Math.max(s,r?.wrappingWidth??0);let{shapeSvg:o,bbox:d,halfPadding:g,label:y}=await f(t,e,"icon-shape default"),p="t"===e.pos,u=s+2*g,w=s+2*g,{nodeBorder:m,mainBkg:$}=a,{stylesMap:b}=(0,l.WW)(e),k=8*!!e.label,M=c.A.svg(o),S=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(S.roughness=0,S.fillStyle="solid"),S.stroke=b.get("fill")??$;let A=M.path(D(-w/2,-u/2,w,u,.1),S),K=Math.max(w,d.width),v=u+d.height+k,C=M.rectangle(-K/2,-v/2,K,v,{...S,fill:"transparent",stroke:"none"}),N=o.insert(()=>A,":first-child"),L=o.insert(()=>C);if(e.icon){let t=o.append("g");t.html(`${await (0,i.WY)(e.icon,{height:s,width:s,fallbackPrefix:""})} `);let a=t.node().getBBox(),l=a.width,r=a.height,n=a.x,h=a.y;t.attr("transform",`translate(${-l/2-n},${p?d.height/2+k/2-r/2-h:-d.height/2-k/2-r/2-h})`),t.attr("style",`color: ${b.get("stroke")??m};`)}return y.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))},${p?-v/2:v/2-d.height})`),N.attr("transform",`translate(0,${p?d.height/2+k/2:-d.height/2-k/2})`),x(e,L),e.intersect=function(t){if(h.R.info("iconSquare intersect",e,t),!e.label)return B.rect(e,t);let a=e.x??0,l=e.y??0,r=e.height??0,i=[];return i=p?[{x:a-d.width/2,y:l-r/2},{x:a+d.width/2,y:l-r/2},{x:a+d.width/2,y:l-r/2+d.height+k},{x:a+w/2,y:l-r/2+d.height+k},{x:a+w/2,y:l+r/2},{x:a-w/2,y:l+r/2},{x:a-w/2,y:l-r/2+d.height+k},{x:a-d.width/2,y:l-r/2+d.height+k}]:[{x:a-w/2,y:l-r/2},{x:a+w/2,y:l-r/2},{x:a+w/2,y:l-r/2+u},{x:a+d.width/2,y:l-r/2+u},{x:a+d.width/2/2,y:l+r/2},{x:a-d.width/2,y:l+r/2},{x:a-d.width/2,y:l-r/2+u},{x:a-w/2,y:l-r/2+u}],B.polygon(e,i,t)},o}async function tv(t,e,{config:{flowchart:a}}){let r=new Image;r.src=e?.img??"",await r.decode();let i=Number(r.naturalWidth.toString().replace("px","")),n=Number(r.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/n;let{labelStyles:s}=(0,l.GX)(e);e.labelStyle=s;let o=a?.wrappingWidth;e.defaultWidth=a?.wrappingWidth;let d=Math.max(e.label?o??0:0,e?.assetWidth??i),g="on"===e.constraint&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:d,y="on"===e.constraint?g/e.imageAspectRatio:e?.assetHeight??n;e.width=Math.max(g,o??0);let{shapeSvg:p,bbox:u,label:w}=await f(t,e,"image-shape default"),m="t"===e.pos,$=-g/2,b=8*!!e.label,k=c.A.svg(p),M=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(M.roughness=0,M.fillStyle="solid");let D=k.rectangle($,-y/2,g,y,M),S=Math.max(g,u.width),A=y+u.height+b,K=k.rectangle(-S/2,-A/2,S,A,{...M,fill:"none",stroke:"none"}),v=p.insert(()=>D,":first-child"),C=p.insert(()=>K);if(e.img){let t=p.append("image");t.attr("href",e.img),t.attr("width",g),t.attr("height",y),t.attr("preserveAspectRatio","none"),t.attr("transform",`translate(${-g/2},${m?A/2-y:-A/2})`)}return w.attr("transform",`translate(${-u.width/2-(u.x-(u.left??0))},${m?-y/2-u.height/2-b/2:y/2-u.height/2+b/2})`),v.attr("transform",`translate(0,${m?u.height/2+b/2:-u.height/2-b/2})`),x(e,C),e.intersect=function(t){if(h.R.info("iconSquare intersect",e,t),!e.label)return B.rect(e,t);let a=e.x??0,l=e.y??0,r=e.height??0,i=[];return i=m?[{x:a-u.width/2,y:l-r/2},{x:a+u.width/2,y:l-r/2},{x:a+u.width/2,y:l-r/2+u.height+b},{x:a+g/2,y:l-r/2+u.height+b},{x:a+g/2,y:l+r/2},{x:a-g/2,y:l+r/2},{x:a-g/2,y:l-r/2+u.height+b},{x:a-u.width/2,y:l-r/2+u.height+b}]:[{x:a-g/2,y:l-r/2},{x:a+g/2,y:l-r/2},{x:a+g/2,y:l-r/2+y},{x:a+u.width/2,y:l-r/2+y},{x:a+u.width/2/2,y:l+r/2},{x:a-u.width/2,y:l+r/2},{x:a-u.width/2,y:l-r/2+y},{x:a-g/2,y:l-r/2+y}],B.polygon(e,i,t)},p}async function tC(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let n=e.padding??0,s="neo"===e.look?2*n:n,{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=Math.max(o.height+2*n,e.height??0),g=Math.max(o.width+2*s,(e.width??0)-d),y=[{x:0,y:0},{x:g,y:0},{x:g+3*d/6,y:-d},{x:-3*d/6,y:-d}],{cssStyles:p}=e;if("handDrawn"===e.look){let t=c.A.svg(h),r=(0,l.Fr)(e,{}),i=m(y),n=t.path(i,r);a=h.insert(()=>n,":first-child").attr("transform",`translate(${-g/2}, ${d/2})`),p&&a.attr("style",p)}else a=I(h,g,d,y);return i&&a.attr("style",i),e.width=g,e.height=d,x(e,a),e.intersect=function(t){return B.polygon(e,y,t)},h}async function tN(t,e){let{shapeSvg:a,bbox:l,label:r}=await f(t,e,"label"),i=a.insert("rect",":first-child");return i.attr("width",.1).attr("height",.1),a.attr("class","label edgeLabel"),r.attr("transform",`translate(${-(l.width/2)-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),x(e,i),e.intersect=function(t){return B.rect(e,t)},a}async function tB(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let n=e.padding??0,s="neo"===e.look?2*n:n,{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=Math.max(o.height+n,e.height??0),g=Math.max(o.width+s,(e.width??0)-d),y=[{x:0,y:0},{x:g+3*d/6,y:0},{x:g,y:-d},{x:-(3*d)/6,y:-d}],{cssStyles:p}=e;if("handDrawn"===e.look){let t=c.A.svg(h),r=(0,l.Fr)(e,{}),i=m(y),n=t.path(i,r);a=h.insert(()=>n,":first-child").attr("transform",`translate(${-g/2}, ${d/2})`),p&&a.attr("style",p)}else a=I(h,g,d,y);return i&&a.attr("style",i),e.width=g,e.height=d,x(e,a),e.intersect=function(t){return B.polygon(e,y,t)},h}async function tL(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let n=e.padding??0,s="neo"===e.look?2*n:n,{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=Math.max(o.height+n,e.height??0),g=Math.max(o.width+s,(e.width??0)-d),y=[{x:-3*d/6,y:0},{x:g,y:0},{x:g+3*d/6,y:-d},{x:0,y:-d}],{cssStyles:p}=e;if("handDrawn"===e.look){let t=c.A.svg(h),r=(0,l.Fr)(e,{}),i=m(y),n=t.path(i,r);a=h.insert(()=>n,":first-child").attr("transform",`translate(${-g/2}, ${d/2})`),p&&a.attr("style",p)}else a=I(h,g,d,y);return i&&a.attr("style",i),e.width=g,e.height=d,x(e,a),e.intersect=function(t){return B.polygon(e,y,t)},h}function tR(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.label="",e.labelStyle=a;let i=t.insert("g").attr("class",w(e)).attr("id",e.domId??e.id),{cssStyles:n}=e,s=Math.max(35,e?.width??0),o=Math.max(35,e?.height??0),d=[{x:s,y:0},{x:0,y:o+3.5},{x:s-14,y:o+3.5},{x:0,y:2*o},{x:s,y:o-3.5},{x:14,y:o-3.5}],g=c.A.svg(i),y=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(y.roughness=0,y.fillStyle="solid");let p=m(d),f=g.path(p,y),u=i.insert(()=>f,":first-child");return u.attr("class","outer-path"),n&&"handDrawn"!==e.look&&u.selectAll("path").attr("style",n),r&&"handDrawn"!==e.look&&u.selectAll("path").attr("style",r),u.attr("transform",`translate(-${s/2},${-o})`),x(e,u),e.intersect=function(t){return h.R.info("lightningBolt intersect",e,t),B.polygon(e,d,t)},i}(0,o.K)(tk,"hexagon"),(0,o.K)(tM,"hourglass"),(0,o.K)(tD,"icon"),(0,o.K)(tS,"iconCircle"),(0,o.K)(tA,"iconRounded"),(0,o.K)(tK,"iconSquare"),(0,o.K)(tv,"imageSquare"),(0,o.K)(tC,"inv_trapezoid"),(0,o.K)(tN,"labelRect"),(0,o.K)(tB,"lean_left"),(0,o.K)(tL,"lean_right"),(0,o.K)(tR,"lightningBolt");var tF=(0,o.K)((t,e,a,l,r,i,n)=>`M${t},${e+i} a${r},${i} 0,0,0 ${a},0 a${r},${i} 0,0,0 ${-a},0 l0,${l} a${r},${i} 0,0,0 ${a},0 l0,${-l} M${t},${e+i+n} a${r},${i} 0,0,0 ${a},0`,"createCylinderPathD"),tP=(0,o.K)((t,e,a,l,r,i,n)=>`M${t},${e+i} M${t+a},${e+i} a${r},${i} 0,0,0 ${-a},0 l0,${l} a${r},${i} 0,0,0 ${a},0 l0,${-l} M${t},${e+i+n} a${r},${i} 0,0,0 ${a},0`,"createOuterCylinderPathD"),tG=(0,o.K)((t,e,a,l,r,i)=>`M${t-a/2},${-l/2} a${r},${i} 0,0,0 ${a},0`,"createInnerCylinderPathD");async function tX(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let s=e.padding??0,h="neo"===e.look?16:s,o="neo"===e.look?24:s;if(e.width||e.height){let t=e.width??0;e.width=(e.width??0)-h,e.width<10&&(e.width=10),e.height=(e.height??0)-o-t/2/(2.5+t/50)*3,e.height<10&&(e.height=10)}let{shapeSvg:d,bbox:g,label:y}=await f(t,e,w(e)),p=(e?.width?e?.width:g.width)+2*h,u=p/2,m=u/(2.5+p/50),$=(e?.height?e?.height:g.height)+m+2*o,b=.1*$,{cssStyles:k}=e;if("handDrawn"===e.look){let t=c.A.svg(d),r=tP(0,0,p,$,u,m,b),i=tG(0,m,p,$,u,m),n=(0,l.Fr)(e,{}),s=t.path(r,n),h=t.path(i,n);d.insert(()=>h,":first-child").attr("class","line"),(a=d.insert(()=>s,":first-child")).attr("class","basic label-container"),k&&a.attr("style",k)}else{let t=tF(0,0,p,$,u,m,b);a=d.insert("path",":first-child").attr("d",t).attr("class","basic label-container outer-path").attr("style",(0,n.KL)(k)).attr("style",i)}return a.attr("label-offset-y",m),a.attr("transform",`translate(${-p/2}, ${-($/2+m)})`),x(e,a),y.attr("transform",`translate(${-(g.width/2)-(g.x-(g.left??0))}, ${-(g.height/2)+m-(g.y-(g.top??0))})`),e.intersect=function(t){let a=B.rect(e,t),l=a.x-(e.x??0);if(0!=u&&(Math.abs(l)<(e.width??0)/2||Math.abs(l)==(e.width??0)/2&&Math.abs(a.y-(e.y??0))>(e.height??0)/2-m)){let r=m*m*(1-l*l/(u*u));r>0&&(r=Math.sqrt(r)),r=m-r,t.y-(e.y??0)>0&&(r=-r),a.y+=r}return a},d}async function tI(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i;if(e.width||e.height){let t=e.width;e.width=(t??0)*10/11-2*n,e.width<10&&(e.width=10),e.height=(e?.height??0)-2*s,e.height<10&&(e.height=10)}let{shapeSvg:h,bbox:o,label:d}=await f(t,e,w(e)),g=(e?.width?e?.width:o.width)+(n??0)*2,y=(e?.height?e?.height:o.height)+(s??0)*2,p="neo"===e.look?y/4:y/8,u=y+p,{cssStyles:m}=e,b=c.A.svg(h),k=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let M=[{x:-g/2-g/2*.1,y:-u/2},{x:-g/2-g/2*.1,y:u/2},...$(-g/2-g/2*.1,u/2,g/2+g/2*.1,u/2,p,.8),{x:g/2+g/2*.1,y:-u/2},{x:-g/2-g/2*.1,y:-u/2},{x:-g/2,y:-u/2},{x:-g/2,y:u/2*1.1},{x:-g/2,y:-u/2}],D=b.polygon(M.map(t=>[t.x,t.y]),k),S=h.insert(()=>D,":first-child");return S.attr("class","basic label-container outer-path"),m&&"handDrawn"!==e.look&&S.selectAll("path").attr("style",m),r&&"handDrawn"!==e.look&&S.selectAll("path").attr("style",r),S.attr("transform",`translate(0,${-p/2})`),d.attr("transform",`translate(${-g/2+(e.padding??0)+g/2*.1/2-(o.x-(o.left??0))},${-y/2+(e.padding??0)-p/2-(o.y-(o.top??0))})`),x(e,S),e.intersect=function(t){return B.polygon(e,M,t)},h}async function tT(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i,h="neo"===e.look?10:5;(e.width||e.height)&&(e.width=Math.max((e?.width??0)-2*n-2*h,10),e.height=Math.max((e?.height??0)-2*s-2*h,10));let{shapeSvg:o,bbox:d,label:g}=await f(t,e,w(e)),y=(e?.width?e?.width:d.width)+2*n+2*h,p=(e?.height?e?.height:d.height)+2*s+2*h,u=y-2*h,$=p-2*h,b=-u/2,M=-$/2,{cssStyles:D}=e,S=c.A.svg(o),A=(0,l.Fr)(e,{}),K=[{x:b-h,y:M+h},{x:b-h,y:M+$+h},{x:b+u-h,y:M+$+h},{x:b+u-h,y:M+$},{x:b+u,y:M+$},{x:b+u,y:M+$-h},{x:b+u+h,y:M+$-h},{x:b+u+h,y:M-h},{x:b+h,y:M-h},{x:b+h,y:M},{x:b,y:M},{x:b,y:M+h}];"handDrawn"!==e.look&&(A.roughness=0,A.fillStyle="solid");let v=m(K),C=S.path(v,A),N=m([{x:b,y:M+h},{x:b+u-h,y:M+h},{x:b+u-h,y:M+$},{x:b+u,y:M+$},{x:b+u,y:M},{x:b,y:M}]),L=S.path(N,A);"handDrawn"!==e.look&&(C=k(C),L=k(L));let R=o.insert("g",":first-child");return R.insert(()=>C),R.insert(()=>L),R.attr("class","basic label-container outer-path"),D&&"handDrawn"!==e.look&&R.selectAll("path").attr("style",D),r&&"handDrawn"!==e.look&&R.selectAll("path").attr("style",r),g.attr("transform",`translate(${-(d.width/2)-h-(d.x-(d.left??0))}, ${-(d.height/2)+h-(d.y-(d.top??0))})`),x(e,R),e.intersect=function(t){return B.polygon(e,K,t)},o}async function tW(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let{shapeSvg:i,bbox:n,label:s}=await f(t,e,w(e)),h=e.padding??0,o="neo"===e.look?16:h,d="neo"===e.look?12:h,g=!0;(e.width||e.height)&&(g=!1,e.width=(e?.width??0)-2*o,e.height=(e?.height??0)-3*d);let y=Math.max(n.width,e?.width??0)+2*o,p=Math.max(n.height,e?.height??0)+3*d,u="neo"===e.look?p/4:p/8,b=p+(g?u/2:-u/2),k=-y/2,M=-b/2,{cssStyles:D}=e,S=$(k-10,M+b+10,k+y-10,M+b+10,u,.8),A=S?.[S.length-1],K=[{x:k-10,y:M+10},{x:k-10,y:M+b+10},...S,{x:k+y-10,y:A.y-10},{x:k+y,y:A.y-10},{x:k+y,y:A.y-20},{x:k+y+10,y:A.y-20},{x:k+y+10,y:M-10},{x:k+10,y:M-10},{x:k+10,y:M},{x:k,y:M},{x:k,y:M+10}],v=[{x:k,y:M+10},{x:k+y-10,y:M+10},{x:k+y-10,y:A.y-10},{x:k+y,y:A.y-10},{x:k+y,y:M},{x:k,y:M}],C=c.A.svg(i),N=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(N.roughness=0,N.fillStyle="solid");let L=m(K),R=C.path(L,N),F=m(v),P=C.path(F,N),G=i.insert(()=>R,":first-child");return G.insert(()=>P),G.attr("class","basic label-container outer-path"),D&&"handDrawn"!==e.look&&G.selectAll("path").attr("style",D),r&&"handDrawn"!==e.look&&G.selectAll("path").attr("style",r),G.attr("transform",`translate(0,${-u/2})`),s.attr("transform",`translate(${-(n.width/2)-10-(n.x-(n.left??0))}, ${-(n.height/2)+10-u/2-(n.y-(n.top??0))})`),x(e,G),e.intersect=function(t){return B.polygon(e,K,t)},i}async function tE(t,e,{config:{themeVariables:a}}){let{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r,e.useHtmlLabels||(0,s.E)((0,s.zj)())||(e.centerLabel=!0);let{shapeSvg:n,bbox:h,label:o}=await f(t,e,w(e)),d=Math.max(h.width+(e.padding??0)*2,e?.width??0),g=Math.max(h.height+(e.padding??0)*2,e?.height??0),{cssStyles:y}=e,p=c.A.svg(n),u=(0,l.Fr)(e,{fill:a.noteBkgColor,stroke:a.noteBorderColor});"handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid");let m=p.rectangle(-d/2,-g/2,d,g,u),$=n.insert(()=>m,":first-child");return $.attr("class","basic label-container outer-path"),o.attr("class","label noteLabel"),y&&"handDrawn"!==e.look&&$.selectAll("path").attr("style",y),i&&"handDrawn"!==e.look&&$.selectAll("path").attr("style",i),o.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))}, ${-(h.height/2)-(h.y-(h.top??0))})`),x(e,$),e.intersect=function(t){return B.rect(e,t)},n}(0,o.K)(tX,"linedCylinder"),(0,o.K)(tI,"linedWaveEdgedRect"),(0,o.K)(tT,"multiRect"),(0,o.K)(tW,"multiWaveEdgedRectangle"),(0,o.K)(tE,"note");var tH=(0,o.K)((t,e,a)=>`M${t+a/2},${e} L${t+a},${e-a/2} L${t+a/2},${e-a} L${t},${e-a/2} Z`,"createDecisionBoxPathD");async function tj(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:n,bbox:s}=await f(t,e,w(e)),h=s.width+(e.padding??0)+(s.height+(e.padding??0)),o=[{x:h/2,y:0},{x:h,y:-h/2},{x:h/2,y:-h},{x:0,y:-h/2}],{cssStyles:d}=e;if("handDrawn"===e.look){let t=c.A.svg(n),r=(0,l.Fr)(e,{}),i=tH(0,0,h),s=t.path(i,r);a=n.insert(()=>s,":first-child").attr("transform",`translate(${-h/2+.5}, ${h/2})`),d&&a.attr("style",d)}else(a=I(n,h,h,o)).attr("transform",`translate(${-h/2+.5}, ${h/2})`);return i&&a.attr("style",i),x(e,a),e.calcIntersect=function(t,e){let a=t.width,l=B.polygon(t,[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}],e);return{x:l.x-.5,y:l.y-.5}},e.intersect=function(t){return this.calcIntersect(e,t)},n}async function tq(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?21:i??0,s="neo"===e.look?12:i??0,{shapeSvg:h,bbox:o,label:d}=await f(t,e,w(e)),g=o.width+("neo"===e.look?2*n:n),y=Math.max(o.height+("neo"===e.look?2*s:s),e.height??0),p=-Math.max(g,(e.width??0)-y/4)/2,u=-y/2,$=u/2,b=[{x:p+$,y:u},{x:p,y:0},{x:p+$,y:-u},{x:-p,y:-u},{x:-p,y:u}],{cssStyles:k}=e,M=c.A.svg(h),D=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(D.roughness=0,D.fillStyle="solid");let S=m(b),A=M.path(S,D),K=h.insert(()=>A,":first-child");return K.attr("class","basic label-container outer-path"),k&&"handDrawn"!==e.look&&K.selectAll("path").attr("style",k),r&&"handDrawn"!==e.look&&K.selectAll("path").attr("style",r),K.attr("transform",`translate(${-$/2},0)`),d.attr("transform",`translate(${-$/2-o.width/2-(o.x-(o.left??0))}, ${-(o.height/2)-(o.y-(o.top??0))})`),x(e,K),e.intersect=function(t){return B.polygon(e,b,t)},h}async function t_(t,e){let a,r,i,{labelStyles:n,nodeStyles:o}=(0,l.GX)(e);e.labelStyle=n,a=e.cssClasses?"node "+e.cssClasses:"node default";let g=t.insert("g").attr("class",a).attr("id",e.domId||e.id),y=g.insert("g"),p=g.insert("g").attr("class","label").attr("style",o),f=e.description,u=e.label,w=await S(p,u,e.labelStyle,!0,!0),m={width:0,height:0};if((0,s.E)((0,s.D7)())){let t=w.children[0],e=(0,d.Ltv)(w);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}h.R.info("Text 2",f);let $=f||[],b=w.getBBox(),k=await S(p,Array.isArray($)?$.join(" "):$,e.labelStyle,!0,!0),M=k.children[0],A=(0,d.Ltv)(k);m=M.getBoundingClientRect(),A.attr("width",m.width),A.attr("height",m.height);let K=(e.padding||0)/2;(0,d.Ltv)(k).attr("transform","translate( "+(m.width>b.width?0:(b.width-m.width)/2)+", "+(b.height+K+5)+")"),(0,d.Ltv)(w).attr("transform","translate( "+(m.width(h.R.debug("Rough node insert CXC",n),s),":first-child"),r=g.insert(()=>(h.R.debug("Rough node insert CXC",n),n),":first-child")}else r=y.insert("rect",":first-child"),i=y.insert("line"),r.attr("class","outer title-state").attr("style",o).attr("x",-m.width/2-K).attr("y",-m.height/2-K).attr("width",m.width+(e.padding||0)).attr("height",m.height+(e.padding||0)),i.attr("class","divider").attr("x1",-m.width/2-K).attr("x2",m.width/2+K).attr("y1",-m.height/2-K+b.height+K).attr("y2",-m.height/2-K+b.height+K);return x(e,r),e.intersect=function(t){return B.rect(e,t)},g}async function tz(t,e,{config:{themeVariables:a}}){let l=a?.radius??5,r={rx:l,ry:l,classes:"",labelPaddingX:(e?.padding??0)*1,labelPaddingY:(e?.padding??0)*1};return tg(t,e,r)}async function tZ(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i="neo"===e.look?16:e.padding??0,s="neo"===e.look?12:e.padding??0,{shapeSvg:h,bbox:o,label:d}=await f(t,e,w(e)),g=(e?.width??o.width)+2*i+("neo"===e.look?8:16),y=(e?.height??o.height)+2*s,p=g-8,u=8-g/2,m=-y/2,{cssStyles:$}=e,b=c.A.svg(h),k=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let M=b.polygon([{x:u,y:m},{x:u+p,y:m},{x:u+p,y:m+y},{x:u-8,y:m+y},{x:u-8,y:m},{x:u,y:m},{x:u,y:m+y}].map(t=>[t.x,t.y]),k),D=h.insert(()=>M,":first-child");return D.attr("class","basic label-container outer-path").attr("style",(0,n.KL)($)),r&&"handDrawn"!==e.look&&D.selectAll("path").attr("style",r),$&&"handDrawn"!==e.look&&D.selectAll("path").attr("style",r),d.attr("transform",`translate(${4-o.width/2-(o.x-(o.left??0))}, ${-(o.height/2)-(o.y-(o.top??0))})`),x(e,D),e.intersect=function(t){return B.rect(e,t)},h}async function tO(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i;(e.width||e.height)&&(e.width=Math.max((e?.width??0)-2*n,10),e.height=Math.max((e?.height??0)/1.5-2*s,10));let{shapeSvg:h,bbox:o,label:d}=await f(t,e,w(e)),g=(e?.width?e?.width:o.width)+2*n,y=((e?.height?e?.height:o.height)+2*s)*1.5/1.5,p=-g/2,u=-y/2,{cssStyles:$}=e,b=c.A.svg(h),k=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let M=[{x:p,y:u},{x:p,y:u+y},{x:p+g,y:u+y},{x:p+g,y:u-y/2}],D=m(M),S=b.path(D,k),A=h.insert(()=>S,":first-child");return A.attr("class","basic label-container outer-path"),$&&"handDrawn"!==e.look&&A.selectChildren("path").attr("style",$),r&&"handDrawn"!==e.look&&A.selectChildren("path").attr("style",r),A.attr("transform",`translate(0, ${y/4})`),d.attr("transform",`translate(${-g/2+(e.padding??0)-(o.x-(o.left??0))}, ${-y/4+(e.padding??0)-(o.y-(o.top??0))})`),x(e,A),e.intersect=function(t){return B.polygon(e,M,t)},h}async function tV(t,e){let a=e.padding??0,l="neo"===e.look?16:2*a,r="neo"===e.look?12:a,i={rx:0,ry:0,classes:"",labelPaddingX:e.labelPaddingX??l,labelPaddingY:r};return tg(t,e,i)}async function tY(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?20:i,s="neo"===e.look?12:i,{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=o.height+("neo"===e.look?2*s:s),g=o.width+d/4+("neo"===e.look?2*n:n),y=d/2,{cssStyles:p}=e,u=c.A.svg(h),$=(0,l.Fr)(e,{});"handDrawn"!==e.look&&($.roughness=0,$.fillStyle="solid");let k=[{x:-g/2+y,y:-d/2},{x:g/2-y,y:-d/2},...b(-g/2+y,0,y,50,90,270),{x:g/2-y,y:d/2},...b(g/2-y,0,y,50,270,450)],M=m(k),D=u.path(M,$),S=h.insert(()=>D,":first-child");return S.attr("class","basic label-container outer-path"),p&&"handDrawn"!==e.look&&S.selectChildren("path").attr("style",p),r&&"handDrawn"!==e.look&&S.selectChildren("path").attr("style",r),x(e,S),e.intersect=function(t){return B.polygon(e,k,t)},h}async function tU(t,e){let a={rx:"neo"===e.look?3:5,ry:"neo"===e.look?3:5,classes:"flowchart-node"};return tg(t,e,a)}function tJ(t,e,{config:{themeVariables:a}}){let{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{cssStyles:n}=e,{lineColor:s,stateBorder:h,nodeBorder:o,nodeShadow:d}=a;(e.width||e.height)&&((e.width??0)<14&&(e.width=14),(e.height??0)<14&&(e.height=14)),e.width||(e.width=14),e.height||(e.height=14);let g=t.insert("g").attr("class","node default").attr("id",e.domId??e.id),y=c.A.svg(g),p=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(p.roughness=0,p.fillStyle="solid");let f=y.circle(0,0,e.width,{...p,stroke:s,strokeWidth:2}),u=h??o,w=(e.width??0)*5/14,m=y.circle(0,0,w,{...p,fill:u,stroke:u,strokeWidth:2,fillStyle:"solid"}),$=g.insert(()=>f,":first-child");if($.insert(()=>m),"handDrawn"!==e.look&&$.attr("class","outer-path"),n&&$.selectAll("path").attr("style",n),i&&$.selectAll("path").attr("style",i),e.width<25&&d&&"handDrawn"!==e.look){let e=t.node()?.ownerSVGElement?.id??"",a=e?`${e}-drop-shadow-small`:"drop-shadow-small";$.attr("style",`filter:url(#${a})`)}return x(e,$),e.intersect=function(t){return B.circle(e,(e.width??0)/2,t)},g}function tQ(t,e,{config:{themeVariables:a}}){let r,{lineColor:i,nodeShadow:n}=a;(e.width||e.height)&&((e.width??0)<14&&(e.width=14),(e.height??0)<14&&(e.height=14)),e.width||(e.width=14),e.height||(e.height=14);let s=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);if("handDrawn"===e.look){let t=c.A.svg(s).circle(0,0,e.width,(0,l.ue)(i));(r=s.insert(()=>t)).attr("class","state-start").attr("r",(e.width??7)/2).attr("width",e.width??14).attr("height",e.height??14)}else(r=s.insert("circle",":first-child")).attr("class","state-start").attr("r",(e.width??7)/2).attr("width",e.width??14).attr("height",e.height??14);if(e.width<25&&n&&"handDrawn"!==e.look){let e=t.node()?.ownerSVGElement?.id??"",a=e?`${e}-drop-shadow-small`:"drop-shadow-small";r.attr("style",`filter:url(#${a})`)}return x(e,r),e.intersect=function(t){return B.circle(e,(e.width??7)/2,t)},s}async function t0(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e?.padding??8,s="neo"===e.look?28:i,h="neo"===e.look?12:i,{shapeSvg:o,bbox:d}=await f(t,e,w(e)),g=Math.max(d.width+16+s,e.width??0),y=Math.max(d.height+h,e.height??0),p=g-16,u=-g/2,m=-y/2,$=[{x:0,y:0},{x:p,y:0},{x:p,y:-y},{x:0,y:-y},{x:0,y:0},{x:-8,y:0},{x:p+8,y:0},{x:p+8,y:-y},{x:-8,y:-y},{x:-8,y:0}];if("handDrawn"===e.look){let t=c.A.svg(o),a=(0,l.Fr)(e,{}),r=t.rectangle(u,m,p+16,y,a),i=t.line(u+8,m,u+8,m+y,a),s=t.line(u+8+p,m,u+8+p,m+y,a);o.insert(()=>i,":first-child"),o.insert(()=>s,":first-child");let h=o.insert(()=>r,":first-child"),{cssStyles:d}=e;h.attr("class","basic label-container").attr("style",(0,n.KL)(d)),x(e,h)}else{let t=I(o,p,y,$);r&&t.attr("style",r),x(e,t)}return e.intersect=function(t){return B.polygon(e,$,t)},o}async function t2(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i;(e.width||e.height)&&(e.height=Math.max((e?.height??0)-2*s,10),e.width=Math.max((e?.width??0)-2*n-.2*(e.height+2*s),10));let{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=(e?.height?e?.height:o.height)+2*s,g=.2*d,y=(e?.width?e?.width:o.width)+2*n+g-g,p=-y/2,u=-d/2,{cssStyles:$}=e,b=c.A.svg(h),k=(0,l.Fr)(e,{}),M=[{x:p-g/2,y:u},{x:p+y+g/2,y:u},{x:p+y+g/2,y:u+d},{x:p-g/2,y:u+d}];"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let D=m(M),S=b.path(D,k),A=m([{x:p+y-g/2,y:u+d},{x:p+y+g/2,y:u+d},{x:p+y+g/2,y:u+d-.2*d}]),K=b.path(A,{...k,fillStyle:"solid"}),v=h.insert(()=>K,":first-child");return v.insert(()=>S,":first-child"),v.attr("class","basic label-container outer-path"),$&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",$),r&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",r),x(e,v),e.intersect=function(t){return B.polygon(e,M,t)},h}async function t1(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let{shapeSvg:i,bbox:n,label:s}=await f(t,e,w(e)),h=Math.max(n.width+(e.padding??0)*2,e?.width??0),o=Math.max(n.height+(e.padding??0)*2,e?.height??0),d=o/8,g=.2*h,y=.2*o,p=o+d,{cssStyles:u}=e,b=c.A.svg(i),k=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let M=[{x:-h/2-h/2*.1,y:p/2},...$(-h/2-h/2*.1,p/2,h/2+h/2*.1,p/2,d,.8),{x:h/2+h/2*.1,y:-p/2},{x:-h/2-h/2*.1,y:-p/2}],D=-h/2+h/2*.1,S=-p/2-.4*y,A=[{x:D+h-g,y:(S+o)*1.3},{x:D+h,y:S+o-y},{x:D+h,y:(S+o)*.9},...$(D+h,(S+o)*1.25,D+h-g,(S+o)*1.3,-(.02*o),.5)],K=m(M),v=b.path(K,k),C=m(A),N=b.path(C,{...k,fillStyle:"solid"}),L=i.insert(()=>N,":first-child");return L.insert(()=>v,":first-child"),L.attr("class","basic label-container outer-path"),u&&"handDrawn"!==e.look&&L.selectAll("path").attr("style",u),r&&"handDrawn"!==e.look&&L.selectAll("path").attr("style",r),L.attr("transform",`translate(0,${-d/2})`),s.attr("transform",`translate(${-h/2+(e.padding??0)-(n.x-(n.left??0))},${-o/2+(e.padding??0)-d/2-(n.y-(n.top??0))})`),x(e,L),e.intersect=function(t){return B.polygon(e,M,t)},i}async function t5(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let{shapeSvg:i,bbox:n}=await f(t,e,w(e)),s=Math.max(n.width+(e.padding??0),e?.width||0),h=Math.max(n.height+(e.padding??0),e?.height||0),o=i.insert("rect",":first-child");return o.attr("class","text").attr("style",r).attr("rx",0).attr("ry",0).attr("x",-s/2).attr("y",-h/2).attr("width",s).attr("height",h),x(e,o),e.intersect=function(t){return B.rect(e,t)},i}(0,o.K)(tj,"question"),(0,o.K)(tq,"rect_left_inv_arrow"),(0,o.K)(t_,"rectWithTitle"),(0,o.K)(tz,"roundedRect"),(0,o.K)(tZ,"shadedProcess"),(0,o.K)(tO,"slopedRect"),(0,o.K)(tV,"squareRect"),(0,o.K)(tY,"stadium"),(0,o.K)(tU,"state"),(0,o.K)(tJ,"stateEnd"),(0,o.K)(tQ,"stateStart"),(0,o.K)(t0,"subroutine"),(0,o.K)(t2,"taggedRect"),(0,o.K)(t1,"taggedWaveEdgedRectangle"),(0,o.K)(t5,"text");var t8=(0,o.K)((t,e,a,l,r,i)=>`M${t},${e}
- a${r},${i} 0,0,1 0,${-l}
- l${a},0
- a${r},${i} 0,0,1 0,${l}
- M${a},${-l}
- a${r},${i} 0,0,0 0,${l}
- l${-a},0`,"createCylinderPathD"),t4=(0,o.K)((t,e,a,l,r,i)=>`M${t},${e} M${t+a},${e} a${r},${i} 0,0,0 0,${-l} l${-a},0 a${r},${i} 0,0,0 0,${l} l${a},0`,"createOuterCylinderPathD"),t3=(0,o.K)((t,e,a,l,r,i)=>`M${t+a/2},${-l/2} a${r},${i} 0,0,0 0,${l}`,"createInnerCylinderPathD");async function t6(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let s=e.padding??0,h="neo"===e.look?12:s/2,o=e.height??0;e.height&&(e.height=e.height-h,e.height<5&&(e.height=5)),e.width&&(e.width=e.width-h-o/2/(2.5+o/50)*3,e.width<10&&(e.width=10));let{shapeSvg:d,bbox:g,label:y}=await f(t,e,w(e)),p=Math.max(e.height??0,g.height)+h,u=p/2,m=u/(2.5+p/50),$=Math.max(e.width??0,g.width)+m+h,{cssStyles:b}=e;if("handDrawn"===e.look){let t=c.A.svg(d),r=t4(0,0,$,p,m,u),i=t3(0,0,$,p,m,u),n=t.path(r,(0,l.Fr)(e,{})),s=t.path(i,(0,l.Fr)(e,{fill:"none"}));a=d.insert(()=>s,":first-child"),(a=d.insert(()=>n,":first-child")).attr("class","basic label-container"),b&&a.attr("style",b)}else{let t=t8(0,0,$,p,m,u);(a=d.insert("path",":first-child").attr("d",t).attr("class","basic label-container").attr("style",(0,n.KL)(b)).attr("style",i)).attr("class","basic label-container outer-path"),b&&a.selectAll("path").attr("style",b),i&&a.selectAll("path").attr("style",i)}return a.attr("label-offset-x",m),a.attr("transform",`translate(${-$/2}, ${p/2} )`),y.attr("transform",`translate(${-(g.width/2)-m-(g.x-(g.left??0))}, ${-(g.height/2)-(g.y-(g.top??0))})`),x(e,a),e.intersect=function(t){let a=B.rect(e,t),l=a.y-(e.y??0);if(0!=u&&(Math.abs(l)<(e.height??0)/2||Math.abs(l)==(e.height??0)/2&&Math.abs(a.x-(e.x??0))>(e.width??0)/2-m)){let r=m*m*(1-l*l/(u*u));0!=r&&(r=Math.sqrt(Math.abs(r))),r=m-r,t.x-(e.x??0)>0&&(r=-r),a.x+=r}return a},d}async function t7(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let n=e.padding??0,s=(e.look,n),h="neo"===e.look?2*n:n,{shapeSvg:o,bbox:d}=await f(t,e,w(e)),g=Math.max(d.height+s,e.height??0),y=Math.max(d.width+h,(e.width??0)-g),p=[{x:-3*g/6,y:0},{x:y+3*g/6,y:0},{x:y,y:-g},{x:0,y:-g}],{cssStyles:u}=e;if("handDrawn"===e.look){let t=c.A.svg(o),r=(0,l.Fr)(e,{}),i=m(p),n=t.path(i,r);a=o.insert(()=>n,":first-child").attr("transform",`translate(${-y/2}, ${g/2})`),u&&a.attr("style",u)}else a=I(o,y,g,p);return i&&a.attr("style",i),e.width=y,e.height=g,x(e,a),e.intersect=function(t){return B.polygon(e,p,t)},o}async function t9(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i;(e.width||e.height)&&(e.height=(e.height??0)-2*s,e.height<5&&(e.height=5),e.width=(e.width??0)-2*n,e.width<15&&(e.width=15));let{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=(e?.width?e?.width:o.width)+2*n,g=(e?.height?e?.height:o.height)+2*s,{cssStyles:y}=e,p=c.A.svg(h),u=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid");let $=[{x:-d/2*.8,y:-g/2},{x:d/2*.8,y:-g/2},{x:d/2,y:-g/2*.6},{x:d/2,y:g/2},{x:-d/2,y:g/2},{x:-d/2,y:-g/2*.6}],b=m($),k=p.path(b,u),M=h.insert(()=>k,":first-child");return M.attr("class","basic label-container outer-path"),y&&"handDrawn"!==e.look&&M.selectChildren("path").attr("style",y),r&&"handDrawn"!==e.look&&M.selectChildren("path").attr("style",r),x(e,M),e.intersect=function(t){return B.polygon(e,$,t)},h}async function et(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?2*i:i;(e.width||e.height)&&(e.width=((e?.width??0)-n)/2,e.width<10&&(e.width=10),e.height=e?.height??0,e.height<10&&(e.height=10));let{shapeSvg:o,bbox:d,label:g}=await f(t,e,w(e)),y=(0,s._3)((0,s.D7)().flowchart?.htmlLabels),p=(e?.width?e?.width:d.width)+n,u=e?.height?e?.height:p+d.height,$=[{x:0,y:0},{x:u,y:0},{x:u/2,y:-u}],{cssStyles:b}=e,k=c.A.svg(o),M=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(M.roughness=0,M.fillStyle="solid");let D=m($),S=k.path(D,M),A=o.insert(()=>S,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`).attr("class","outer-path");return b&&"handDrawn"!==e.look&&A.selectChildren("path").attr("style",b),r&&"handDrawn"!==e.look&&A.selectChildren("path").attr("style",r),e.width=p,e.height=u,x(e,A),g.attr("transform",`translate(${-d.width/2-(d.x-(d.left??0))}, ${u/2-(d.height+(e.padding??0)/(y?2:1)-(d.y-(d.top??0)))})`),e.intersect=function(t){return h.R.info("Triangle intersect",e,$,t),B.polygon(e,$,t)},o}async function ee(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?12:i,h=!0;(e.width||e.height)&&(h=!1,e.width=(e?.width??0)-2*n,e.width<10&&(e.width=10),e.height=(e?.height??0)-2*s,e.height<10&&(e.height=10));let{shapeSvg:o,bbox:d,label:g}=await f(t,e,w(e)),y=(e?.width?e?.width:d.width)+(n??0)*2,p=(e?.height?e?.height:d.height)+(s??0)*2,u="neo"===e.look?p/4:p/8,b=p+(h?u:-u),{cssStyles:k}=e,M=14-y,D=M>0?M/2:0,S=c.A.svg(o),A=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(A.roughness=0,A.fillStyle="solid");let K=[{x:-y/2-D,y:b/2},...$(-y/2-D,b/2,y/2+D,b/2,u,.8),{x:y/2+D,y:-b/2},{x:-y/2-D,y:-b/2}],v=m(K),C=S.path(v,A),N=o.insert(()=>C,":first-child");return N.attr("class","basic label-container outer-path"),k&&"handDrawn"!==e.look&&N.selectAll("path").attr("style",k),r&&"handDrawn"!==e.look&&N.selectAll("path").attr("style",r),N.attr("transform",`translate(0,${-u/2})`),g.attr("transform",`translate(${-y/2+(e.padding??0)-(d.x-(d.left??0))},${-p/2+(e.padding??0)-u-(d.y-(d.top??0))})`),x(e,N),e.intersect=function(t){return B.polygon(e,K,t)},o}async function ea(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i=e.padding??0,n="neo"===e.look?16:i,s="neo"===e.look?20:i;if(e.width||e.height){e.width=e?.width??0,e.width<20&&(e.width=20),e.height=e?.height??0,e.height<10&&(e.height=10);let t=Math.min(.2*e.height,e.height/4);e.height=Math.ceil(e.height-s-20/9*t),e.width=e.width-2*n}let{shapeSvg:h,bbox:o}=await f(t,e,w(e)),d=(e?.width?e?.width:o.width)+2*n,g=(e?.height?e?.height:o.height)+s,y=g/8,p=g+2*y,{cssStyles:u}=e,b=c.A.svg(h),k=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let M=[{x:-d/2,y:p/2},...$(-d/2,p/2,d/2,p/2,y,1),{x:d/2,y:-p/2},...$(d/2,-p/2,-d/2,-p/2,y,-1)],D=m(M),S=b.path(D,k),A=h.insert(()=>S,":first-child");return A.attr("class","basic label-container"),u&&"handDrawn"!==e.look&&A.selectAll("path").attr("style",u),r&&"handDrawn"!==e.look&&A.selectAll("path").attr("style",r),x(e,A),e.intersect=function(t){return B.polygon(e,M,t)},h}async function el(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let i="neo"===e.look?16:e.padding??0,n="neo"===e.look?12:e.padding??0;(e.width||e.height)&&(e.width=Math.max((e?.width??0)-2*i-10,10),e.height=Math.max((e?.height??0)-2*n-10,10));let{shapeSvg:s,bbox:h,label:o}=await f(t,e,w(e)),d=(e?.width?e?.width:h.width)+2*i+10,g=(e?.height?e?.height:h.height)+2*n+10,y=d-10,p=g-10,u=-y/2,m=-p/2,{cssStyles:$}=e,b=c.A.svg(s),k=(0,l.Fr)(e,{}),M=[{x:u-10,y:m-10},{x:u-10,y:m+p},{x:u+y,y:m+p},{x:u+y,y:m-10}],D=`M${u-10},${m-10} L${u+y},${m-10} L${u+y},${m+p} L${u-10},${m+p} L${u-10},${m-10}
- M${u-10},${m} L${u+y},${m}
- M${u},${m-10} L${u},${m+p}`;"handDrawn"!==e.look&&(k.roughness=0,k.fillStyle="solid");let S=b.path(D,k),A=s.insert(()=>S,":first-child");return A.attr("transform","translate(5, 5)"),A.attr("class","basic label-container outer-path"),$&&"handDrawn"!==e.look&&A.selectAll("path").attr("style",$),r&&"handDrawn"!==e.look&&A.selectAll("path").attr("style",r),o.attr("transform",`translate(${-(h.width/2)+5-(h.x-(h.left??0))}, ${-(h.height/2)+5-(h.y-(h.top??0))})`),x(e,A),e.intersect=function(t){return B.polygon(e,M,t)},s}(0,o.K)(t6,"tiltedCylinder"),(0,o.K)(t7,"trapezoid"),(0,o.K)(t9,"trapezoidalPentagon"),(0,o.K)(et,"triangle"),(0,o.K)(ee,"waveEdgedRectangle"),(0,o.K)(ea,"waveRectangle"),(0,o.K)(el,"windowPane");var er=new Set(["redux-color","redux-dark-color"]),ei=new Set(["redux","redux-dark","redux-color","redux-dark-color"]);async function en(t,e){e.alias&&(e.label=e.alias);let{theme:a,themeVariables:r}=(0,s.zj)(),{rowEven:i,rowOdd:h,nodeBorder:o,borderColorArray:g}=r;if("handDrawn"===e.look){let{themeVariables:a}=(0,s.zj)(),{background:l}=a,r={...e,id:e.id+"-background",domId:(e.domId||e.id)+"-background",look:"default",cssStyles:["stroke: none",`fill: ${l}`]};await en(t,r)}let y=(0,s.zj)();e.useHtmlLabels=y.htmlLabels;let p=y.er?.diagramPadding??10,f=y.er?.entityPadding??6,{cssStyles:u}=e,{labelStyles:m,nodeStyles:$}=(0,l.GX)(e);if(0===e.attributes.length&&e.label){let l={rx:0,ry:0,labelPaddingX:p,labelPaddingY:1.5*p,classes:""};(0,n.Un)(e.label,y)+2*l.labelPaddingX0){let t=M.width+2*p-(K+v+C+N);K+=t/F,v+=t/F,C>0&&(C+=t/F),N>0&&(N+=t/F)}let G=K+v+C+N,X=c.A.svg(k),I=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(I.roughness=0,I.fillStyle="solid");let T=0;A.length>0&&(T=A.reduce((t,e)=>t+(e?.rowHeight??0),0));let W=Math.max(P.width+2*p,e?.width||0,G),E=Math.max((T??0)+M.height,e?.height||0),H=-W/2,j=-E/2;if(k.selectAll("g:not(:first-child)").each((t,e,a)=>{let l=(0,d.Ltv)(a[e]),r=l.attr("transform"),i=0,n=0;if(r){let t=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(r);t&&(i=parseFloat(t[1]),n=parseFloat(t[2]),l.attr("class").includes("attribute-name")?i+=K:l.attr("class").includes("attribute-keys")?i+=K+v:l.attr("class").includes("attribute-comment")&&(i+=K+v+C))}l.attr("transform",`translate(${H+p/2+i}, ${n+j+M.height+f/2})`)}),k.select(".name").attr("transform","translate("+-M.width/2+", "+(j+f/2)+")"),null!=a&&er.has(a)){let t=e.colorIndex??0;k.attr("data-color-id",`color-${t%g.length}`)}let q=X.rectangle(H,j,W,E,I),_=k.insert(()=>q,":first-child").attr("class","outer-path").attr("style",u.join(""));for(let[t,e]of(S.push(0),A.entries())){let a=(t+1)%2==0&&0!==e.yOffset,l=X.rectangle(H,M.height+j+e?.yOffset,W,e?.rowHeight,{...I,fill:a?i:h,stroke:o});k.insert(()=>l,"g.label").attr("style",u.join("")).attr("class",`row-rect-${a?"even":"odd"}`)}let z=eh(H,M.height+j,W+H,M.height+j,1e-4),Z=X.polygon(z.map(t=>[t.x,t.y]),I);if(k.insert(()=>Z).attr("class","divider"),z=eh(K+H,M.height+j,K+H,E+j,1e-4),Z=X.polygon(z.map(t=>[t.x,t.y]),I),k.insert(()=>Z).attr("class","divider"),L){let t=K+v+H;z=eh(t,M.height+j,t,E+j,1e-4),Z=X.polygon(z.map(t=>[t.x,t.y]),I),k.insert(()=>Z).attr("class","divider")}if(R){let t=K+v+C+H;z=eh(t,M.height+j,t,E+j,1e-4),Z=X.polygon(z.map(t=>[t.x,t.y]),I),k.insert(()=>Z).attr("class","divider")}for(let t of S){let e=M.height+j+t;z=eh(H,e,W+H,e,1e-4),Z=X.polygon(z.map(t=>[t.x,t.y]),I),k.insert(()=>Z).attr("class","divider")}if(x(e,_),$&&"handDrawn"!==e.look)if(null!=a&&ei.has(a))k.selectAll("path").attr("style",$);else{let t=$.split(";"),e=t?.filter(t=>t.includes("stroke"))?.map(t=>`${t}`).join("; ");k.selectAll("path").attr("style",e??""),k.selectAll(".row-rect-even path").attr("style",$)}return e.intersect=function(t){return B.rect(e,t)},k}async function es(t,e,a,l=0,i=0,h=[],o=""){let c=t.insert("g").attr("class",`label ${h.join(" ")}`).attr("transform",`translate(${l}, ${i})`).attr("style",o);e!==(0,s.QO)(e)&&(e=(e=(0,s.QO)(e)).replaceAll("<","<").replaceAll(">",">"));let g=c.node().appendChild(await (0,r.GZ)(c,e,{width:(0,n.Un)(e,a)+100,style:o,useHtmlLabels:a.htmlLabels},a));if(e.includes("<")||e.includes(">")){let t=g.children[0];for(t.textContent=t.textContent.replaceAll("<","<").replaceAll(">",">");t.childNodes[0];)(t=t.childNodes[0]).textContent=t.textContent.replaceAll("<","<").replaceAll(">",">")}let y=g.getBBox();if((0,s._3)(a.htmlLabels)){let t=g.children[0];t.style.textAlign="start";let e=(0,d.Ltv)(g);y=t.getBoundingClientRect(),e.attr("width",y.width),e.attr("height",y.height)}return y}function eh(t,e,a,l,r){return t===a?[{x:t-r/2,y:e},{x:t+r/2,y:e},{x:a+r/2,y:l},{x:a-r/2,y:l}]:[{x:t,y:e-r/2},{x:t,y:e+r/2},{x:a,y:l+r/2},{x:a,y:l-r/2}]}async function eo(t,e,a,l,r=a.class.padding??12){let i=3*!l,n=t.insert("g").attr("class",w(e)).attr("id",e.domId||e.id),s=null,h=null,o=null,d=null,c=0,g=0,y=0;if(s=n.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let t=e.annotations[0];await ed(s,{text:`\xab${t}\xbb`},0),c=s.node().getBBox().height}h=n.insert("g").attr("class","label-group text"),await ed(h,e,0,["font-weight: bolder"]);let p=h.node().getBBox();g=p.height,o=n.insert("g").attr("class","members-group text");let f=0;for(let t of e.members){let e=await ed(o,t,f,[t.parseClassifier()]);f+=e+i}(y=o.node().getBBox().height)<=0&&(y=r/2),d=n.insert("g").attr("class","methods-group text");let u=0;for(let t of e.methods){let e=await ed(d,t,u,[t.parseClassifier()]);u+=e+i}let x=n.node().getBBox();if(null!==s){let t=s.node().getBBox();s.attr("transform",`translate(${-t.width/2})`)}return h.attr("transform",`translate(${-p.width/2}, ${c})`),x=n.node().getBBox(),o.attr("transform",`translate(0, ${c+g+2*r})`),x=n.node().getBBox(),d.attr("transform",`translate(0, ${c+g+(y?y+4*r:2*r)})`),x=n.node().getBBox(),{shapeSvg:n,bbox:x}}async function ed(t,e,a,l=[]){let i,h=t.insert("g").attr("class","label").attr("style",l.join("; ")),o=(0,s.zj)(),c="useHtmlLabels"in e?e.useHtmlLabels:(0,s._3)(o.htmlLabels)??!0,y="";y="text"in e?e.text:e.label,!c&&y.startsWith("\\")&&(y=y.substring(1)),(0,s.Wi)(y)&&(c=!0);let p=await (0,r.GZ)(h,(0,s.oB)((0,n.Sm)(y)),{width:(0,n.Un)(y,o)+50,classes:"markdown-node-label",useHtmlLabels:c},o),f=1;if(c){let t=p.children[0],e=(0,d.Ltv)(p);f=t.innerHTML.split(" ").length,t.innerHTML.includes("")&&(f+=t.innerHTML.split("").length-1),await g(t),i=t.getBoundingClientRect(),e.attr("width",i.width),e.attr("height",i.height)}else{l.includes("font-weight: bolder")&&(0,d.Ltv)(p).selectAll("tspan").attr("font-weight",""),f=p.children.length;let t=p.children[0];(""===p.textContent||p.textContent.includes(">"))&&(t.textContent=y[0]+y.substring(1).replaceAll(">",">").replaceAll("<","<").trim()," "===y[1]&&(t.textContent=t.textContent[0]+" "+t.textContent.substring(1))),"undefined"===t.textContent&&(t.textContent=""),i=p.getBBox()}return h.attr("transform","translate(0,"+(-i.height/(2*f)+a)+")"),i.height}async function ec(t,e){let a=(0,s.D7)(),{themeVariables:r}=a,{useGradient:i}=r,n=a.class.padding??12,h=e.useHtmlLabels??(0,s._3)(a.htmlLabels)??!0;e.annotations=e.annotations??[],e.members=e.members??[],e.methods=e.methods??[];let{shapeSvg:o,bbox:g}=await eo(t,e,a,h,n),{labelStyles:y,nodeStyles:p}=(0,l.GX)(e);e.labelStyle=y,e.cssStyles=e.styles||"";let f=e.styles?.join(";")||p||"";e.cssStyles||(e.cssStyles=f.replaceAll("!important","").split(";"));let u=0===e.members.length&&0===e.methods.length&&!a.class?.hideEmptyMembersBox,w=c.A.svg(o),m=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(m.roughness=0,m.fillStyle="solid");let $=Math.max(e.width??0,g.width),b=Math.max(e.height??0,g.height),k=(e.height??0)>g.height;0===e.members.length&&0===e.methods.length?b+=n:e.members.length>0&&0===e.methods.length&&(b+=2*n);let M=-$/2,D=-b/2,S=u?2*n:0===e.members.length&&0===e.methods.length?-n:0;k&&(S=2*n);let A=w.rectangle(M-n,D-n-(u?n:0===e.members.length&&0===e.methods.length?-n/2:0),$+2*n,b+2*n+S,m),K=o.insert(()=>A,":first-child");K.attr("class","basic label-container outer-path");let v=K.node().getBBox(),C=o.select(".annotation-group").node().getBBox().height-(u?n/2:0)||0,N=o.select(".label-group").node().getBBox().height-(u?n/2:0)||0,L=o.select(".members-group").node().getBBox().height-(u?n/2:0)||0,R=(C+N+D+n-(D-n-(u?n:0===e.members.length&&0===e.methods.length?-n/2:0)))/2;if(o.selectAll(".text").each((t,l,r)=>{let i=(0,d.Ltv)(r[l]),s=i.attr("transform"),c=0;if(s){let t=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(s);t&&(c=parseFloat(t[2]))}let g=c+D+n-(u?n:0===e.members.length&&0===e.methods.length?-n/2:0);if(i.attr("class").includes("methods-group")){let t=Math.max(L,n/2);g=k?Math.max(R,C+N+t+D+2*n+n)+2*n:C+N+t+D+4*n+n}0===e.members.length&&0===e.methods.length&&a.class?.hideEmptyMembersBox&&(g=e.annotations.length>0?c-n:c),h||(g-=4);let y=M;(i.attr("class").includes("label-group")||i.attr("class").includes("annotation-group"))&&(y=-i.node()?.getBBox().width/2||0,o.selectAll("text").each(function(t,e,a){"middle"===window.getComputedStyle(a[e]).textAnchor&&(y=0)})),i.attr("transform",`translate(${y}, ${g})`)}),e.members.length>0||e.methods.length>0||u){let t=C+N+D+n,a=w.line(v.x,t,v.x+v.width,t+.001,m);o.insert(()=>a).attr("class",`divider${"neo"===e.look&&!i?" neo-line":""}`).attr("style",f)}if(u||e.members.length>0||e.methods.length>0){let t=C+N+L+D+2*n+n,a=w.line(v.x,k?Math.max(R,t):t,v.x+v.width,(k?Math.max(R,t):t)+.001,m);o.insert(()=>a).attr("class",`divider${"neo"===e.look&&!i?" neo-line":""}`).attr("style",f)}if("handDrawn"!==e.look&&o.selectAll("path").attr("style",f),K.select(":nth-child(2)").attr("style",f),o.selectAll(".divider").select("path").attr("style",f),e.labelStyle?o.selectAll("span").attr("style",e.labelStyle):o.selectAll("span").attr("style",f),!h){let t=RegExp(/color\s*:\s*([^;]*)/),e=t.exec(f);if(e){let t=e[0].replace("color","fill");o.selectAll("tspan").attr("style",t)}else if(y){let e=t.exec(y);if(e){let t=e[0].replace("color","fill");o.selectAll("tspan").attr("style",t)}}}return x(e,K),e.intersect=function(t){return B.rect(e,t)},o}async function eg(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let n="verifyMethod"in e,h=w(e),o=(0,s.D7)(),{themeVariables:g}=o,{borderColorArray:y,requirementEdgeLabelBackground:p}=g,f="elk"===o.layout?"start":"center",u=t.insert("g").attr("class",h).attr("id",e.domId??e.id),m=a=n?await ey(u,`<<${e.type}>>`,0,e.labelStyle):await ey(u,"<<Element>>",0,e.labelStyle),$=await ey(u,e.name,m,e.labelStyle+"; font-weight: bold;");if(m+=$+20,n){let t=await ey(u,`${e.requirementId?`ID: ${e.requirementId}`:""}`,m,e.labelStyle,f);m+=t;let a=await ey(u,`${e.text?`Text: ${e.text}`:""}`,m,e.labelStyle,f);m+=a;let l=await ey(u,`${e.risk?`Risk: ${e.risk}`:""}`,m,e.labelStyle,f);m+=l,await ey(u,`${e.verifyMethod?`Verification: ${e.verifyMethod}`:""}`,m,e.labelStyle,f)}else{let t=await ey(u,`${e.type?`Type: ${e.type}`:""}`,m,e.labelStyle,f);m+=t,await ey(u,`${e.docRef?`Doc Ref: ${e.docRef}`:""}`,m,e.labelStyle,f)}let b=(u.node()?.getBBox().width??200)+20,k=(u.node()?.getBBox().height??200)+20,M=-b/2,D=-k/2,S=c.A.svg(u),A=(0,l.Fr)(e,{});"handDrawn"!==e.look&&(A.roughness=0,A.fillStyle="solid");let K=S.rectangle(M,D,b,k,A),v=u.insert(()=>K,":first-child");if(v.attr("class","basic label-container outer-path").attr("style",i),y?.length){let t=e.colorIndex??0;u.attr("data-color-id",`color-${t%y.length}`)}if(u.selectAll(".label").each((t,e,a)=>{let l=(0,d.Ltv)(a[e]),r=l.attr("transform"),i=0,n=0;if(r){let t=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(r);t&&(i=parseFloat(t[1]),n=parseFloat(t[2]))}let s=n-k/2,h=M+10;(0===e||1===e)&&(h=i),l.attr("transform",`translate(${h}, ${s+20})`)}),m>a+$+20){let t,l=D+a+$+20;if("neo"===e.look){let e=[[M,l],[M+b,l],[M+b,l+.001],[M,l+.001]];t=S.polygon(e,A)}else t=S.line(M,l,M+b,l,A);u.insert(()=>t).attr("class","divider")}return x(e,v),e.intersect=function(t){return B.rect(e,t)},i&&"handDrawn"!==e.look&&(p||y?.length)&&u.selectAll("path").attr("style",i),u}async function ey(t,e,a,l="",i="center"){let h;if(""===e)return 0;let o=t.insert("g").attr("class","label").attr("style",l),c=(0,s.D7)(),g=c.htmlLabels??!0,y=await (0,r.GZ)(o,(0,s.oB)((0,n.Sm)(e)),{width:(0,n.Un)(e,c)+50,classes:"markdown-node-label",useHtmlLabels:g,style:l},c);if(g){let t=y.children[0],e=(0,d.Ltv)(y);"start"===i&&(0,d.Ltv)(t).style("text-align","left"),h=t.getBoundingClientRect(),e.attr("width",h.width),e.attr("height",h.height)}else{let t=y.children[0];for(let e of t.children)l&&e.setAttribute("style",l);if("start"===i)for(let e of(t.setAttribute("text-anchor","start"),t.children))e.setAttribute("text-anchor","start");h=y.getBBox(),h.height+=6}return o.attr("transform",`translate(${-h.width/2},${-h.height/2+a})`),h.height}(0,o.K)(en,"erBox"),(0,o.K)(es,"addText"),(0,o.K)(eh,"lineToPolygon"),(0,o.K)(eo,"textHelper"),(0,o.K)(ed,"addText"),(0,o.K)(ec,"classBox"),(0,o.K)(eg,"requirementBox"),(0,o.K)(ey,"addText");var ep=(0,o.K)(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");async function ef(t,e,{config:a}){let r,i,n,s,{labelStyles:h,nodeStyles:o}=(0,l.GX)(e);e.labelStyle=h||"";let d=e.width;e.width=(e.width??200)-10;let{shapeSvg:g,bbox:y,label:p}=await f(t,e,w(e)),m=e.padding||10,$="";"ticket"in e&&e.ticket&&a?.kanban?.ticketBaseUrl&&($=a?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),r=g.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",$).attr("target","_blank"));let b={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1};r?{label:i,bbox:n}=await u(r,"ticket"in e&&e.ticket||"",b):{label:i,bbox:n}=await u(g,"ticket"in e&&e.ticket||"",b);let{label:k,bbox:M}=await u(g,"assigned"in e&&e.assigned||"",b);e.width=d;let S=e?.width||0,A=Math.max(n.height,M.height)/2,K=Math.max(y.height+20,e?.height||0)+A,v=-S/2,C=-K/2;p.attr("transform","translate("+(m-S/2)+", "+(-A-y.height/2)+")"),i.attr("transform","translate("+(m-S/2)+", "+(-A+y.height/2)+")"),k.attr("transform","translate("+(m+S/2-M.width-20)+", "+(-A+y.height/2)+")");let{rx:N,ry:L}=e,{cssStyles:R}=e;if("handDrawn"===e.look){let t=c.A.svg(g),a=(0,l.Fr)(e,{}),r=N||L?t.path(D(v,C,S,K,N||0),a):t.rectangle(v,C,S,K,a);(s=g.insert(()=>r,":first-child")).attr("class","basic label-container").attr("style",R||null)}else{(s=g.insert("rect",":first-child")).attr("class","basic label-container __APA__").attr("style",o).attr("rx",N??5).attr("ry",L??5).attr("x",v).attr("y",C).attr("width",S).attr("height",K);let t="priority"in e&&e.priority;if(t){let e=g.append("line"),a=v+2,l=C+Math.floor((N??0)/2),r=C+K-Math.floor((N??0)/2);e.attr("x1",a).attr("y1",l).attr("x2",a).attr("y2",r).attr("stroke-width","4").attr("stroke",ep(t))}}return x(e,s),e.height=K,e.intersect=function(t){return B.rect(e,t)},g}async function eu(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:s,bbox:o,halfPadding:d,label:g}=await f(t,e,w(e)),y=o.width+10*d,p=o.height+8*d,u=.15*y,{cssStyles:m}=e,$=o.width+20,b=o.height+20,k=Math.max(y,$),M=Math.max(p,b);g.attr("transform",`translate(${-o.width/2}, ${-o.height/2})`);let D=`M0 0
- a${u},${u} 1 0,0 ${.25*k},${-1*M*.1}
- a${u},${u} 1 0,0 ${.25*k},0
- a${u},${u} 1 0,0 ${.25*k},0
- a${u},${u} 1 0,0 ${.25*k},${.1*M}
-
- a${u},${u} 1 0,0 ${.15*k},${.33*M}
- a${.8*u},${.8*u} 1 0,0 0,${.34*M}
- a${u},${u} 1 0,0 ${-1*k*.15},${.33*M}
-
- a${u},${u} 1 0,0 ${-1*k*.25},${.15*M}
- a${u},${u} 1 0,0 ${-1*k*.25},0
- a${u},${u} 1 0,0 ${-1*k*.25},0
- a${u},${u} 1 0,0 ${-1*k*.25},${-1*M*.15}
-
- a${u},${u} 1 0,0 ${-1*k*.1},${-1*M*.33}
- a${.8*u},${.8*u} 1 0,0 0,${-1*M*.34}
- a${u},${u} 1 0,0 ${.1*k},${-1*M*.33}
- H0 V0 Z`;if("handDrawn"===e.look){let t=c.A.svg(s),r=(0,l.Fr)(e,{}),i=t.path(D,r);(a=s.insert(()=>i,":first-child")).attr("class","basic label-container").attr("style",(0,n.KL)(m))}else a=s.insert("path",":first-child").attr("class","basic label-container").attr("style",i).attr("d",D);return a.attr("transform",`translate(${-k/2}, ${-M/2})`),x(e,a),e.calcIntersect=function(t,e){return B.rect(t,e)},e.intersect=function(t){return h.R.info("Bang intersect",e,t),B.rect(e,t)},s}async function ex(t,e){let a,{labelStyles:r,nodeStyles:i}=(0,l.GX)(e);e.labelStyle=r;let{shapeSvg:s,bbox:o,halfPadding:d,label:g}=await f(t,e,w(e)),y=o.width+2*d,p=o.height+2*d,u=.15*y,m=.25*y,$=.35*y,b=.2*y,{cssStyles:k}=e,M=`M0 0
- a${u},${u} 0 0,1 ${.25*y},${-1*y*.1}
- a${$},${$} 1 0,1 ${.4*y},${-1*y*.1}
- a${m},${m} 1 0,1 ${.35*y},${.2*y}
-
- a${u},${u} 1 0,1 ${.15*y},${.35*p}
- a${b},${b} 1 0,1 ${-1*y*.15},${.65*p}
-
- a${m},${u} 1 0,1 ${-1*y*.25},${.15*y}
- a${$},${$} 1 0,1 ${-1*y*.5},0
- a${u},${u} 1 0,1 ${-1*y*.25},${-1*y*.15}
-
- a${u},${u} 1 0,1 ${-1*y*.1},${-1*p*.35}
- a${b},${b} 1 0,1 ${.1*y},${-1*p*.65}
- H0 V0 Z`;if("handDrawn"===e.look){let t=c.A.svg(s),r=(0,l.Fr)(e,{}),i=t.path(M,r);(a=s.insert(()=>i,":first-child")).attr("class","basic label-container").attr("style",(0,n.KL)(k))}else a=s.insert("path",":first-child").attr("class","basic label-container").attr("style",i).attr("d",M);return g.attr("transform",`translate(${-o.width/2}, ${-o.height/2})`),a.attr("transform",`translate(${-y/2}, ${-p/2})`),x(e,a),e.calcIntersect=function(t,e){return B.rect(t,e)},e.intersect=function(t){return h.R.info("Cloud intersect",e,t),B.rect(e,t)},s}async function ew(t,e){let{labelStyles:a,nodeStyles:r}=(0,l.GX)(e);e.labelStyle=a;let{shapeSvg:i,bbox:n,halfPadding:s,label:h}=await f(t,e,w(e)),o=n.width+8*s,d=n.height+2*s,c="neo"===e.look?`
- M${-o/2} ${d/2-5}
- v${-d+10}
- q0,-5 5,-5
- h${o-10}
- q5,0 5,5
- v${d-5}
- H${-o/2}
- Z
- `:`
- M${-o/2} ${d/2-5}
- v${-d+10}
- q0,-5 5,-5
- h${o-10}
- q5,0 5,5
- v${d-10}
- q0,5 -5,5
- h${-(o-10)}
- q-5,0 -5,-5
- Z
- `;if(!e.domId)throw Error(`defaultMindmapNode: node "${e.id}" is missing a domId \u2014 was render.ts domId prefixing skipped?`);let g=i.append("path").attr("id",e.domId).attr("class","node-bkg node-"+e.type).attr("style",r).attr("d",c);return i.append("line").attr("class","node-line-").attr("x1",-o/2).attr("y1",d/2).attr("x2",o/2).attr("y2",d/2),h.attr("transform",`translate(${-n.width/2}, ${-n.height/2})`),i.append(()=>h.node()),x(e,g),e.calcIntersect=function(t,e){return B.rect(t,e)},e.intersect=function(t){return B.rect(e,t)},i}async function em(t,e){let a={padding:e.padding??0};return V(t,e,a)}(0,o.K)(ef,"kanbanItem"),(0,o.K)(eu,"bang"),(0,o.K)(ex,"cloud"),(0,o.K)(ew,"defaultMindmapNode"),(0,o.K)(em,"mindmapCircle");var e$=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:tV},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:tz},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:tY},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:t0},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:tc},{semanticName:"Data Store",name:"Data Store",shortName:"datastore",description:"Data flow diagram data store",aliases:["data-store"],handler:ty},{semanticName:"Folder",name:"Folder",shortName:"folder",description:"Folder or directory",aliases:["directory"],handler:tw},{semanticName:"Bucket",name:"Bucket",shortName:"bucket",description:"Object storage bucket",handler:G},{semanticName:"Console",name:"Console (terminal window)",shortName:"console",description:"Terminal or console window",handler:U},{semanticName:"Browser",name:"Browser",shortName:"browser",description:"Browser window",handler:z},{semanticName:"Person",name:"Person",shortName:"person",description:"Person (circular head above a rounded body)",handler:ts},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:V},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:eu},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:ex},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:tj},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:tk},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:tL},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:tB},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:t7},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:tC},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:tf},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:t5},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Z},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:tZ},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:tQ},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:tJ},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:tm},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:tM},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:te},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:tl},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:ti},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:tR},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:ee},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:t$},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:t6},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:tX},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:tn},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:tp},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:et},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:el},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:tu},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:t9},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:tx},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:tO},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:tW},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:tT},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:P},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Q},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:t1},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:t2},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:ea},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:tq},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:tI}],eb=(0,o.K)(()=>Object.fromEntries([...Object.entries({state:tU,choice:O,note:tE,composite:Y,rectWithTitle:t_,labelRect:tN,block_arrow:_,collapsedGroup:X,iconSquare:tK,iconCircle:tS,icon:tD,iconRounded:tA,imageSquare:tv,anchor:L,kanbanItem:ef,mindmapCircle:em,defaultMindmapNode:ew,classBox:ec,erBox:en,requirementBox:eg}),...e$.flatMap(t=>[t.shortName,..."aliases"in t?t.aliases:[],..."internalAliases"in t?t.internalAliases:[]].map(e=>[e,t.handler]))]),"generateShapeMap")();function ek(t){return t in eb}(0,o.K)(ek,"isValidShape")}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1161.69bf3db9f455907d.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1161.69bf3db9f455907d.js
deleted file mode 100644
index 77e002573..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1161.69bf3db9f455907d.js
+++ /dev/null
@@ -1,64 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1161],{31161:(t,e,i)=>{i.d(e,{diagram:()=>$});var s=i(94191),n=i(13892),a=i(69301);i(98999);var r=i(91158),h=i(99788),l=function(){var t=(0,r.K)(function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},"o"),e=[1,4],i=[1,14],s=[1,12],n=[1,13],a=[6,7,8],h=[1,20],l=[1,18],o=[1,19],c=[6,7,11],u=[1,6,13,14],d=[1,23],y=[1,24],p=[1,6,7,11,13,14],g={trace:(0,r.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:(0,r.K)(function(t,e,i,s,n,a,r){var h=a.length-1;switch(n){case 6:case 7:return s;case 15:s.addNode(a[h-1].length,a[h].trim());break;case 16:s.addNode(0,a[h].trim())}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:i,7:[1,10],9:9,12:11,13:s,14:n},t(a,[2,3]),{1:[2,2]},t(a,[2,4]),t(a,[2,5]),{1:[2,6],6:i,12:15,13:s,14:n},{6:i,9:16,12:11,13:s,14:n},{6:h,7:l,10:17,11:o},t(c,[2,18],{14:[1,21]}),t(c,[2,16]),t(c,[2,17]),{6:h,7:l,10:22,11:o},{1:[2,7],6:i,12:15,13:s,14:n},t(u,[2,14],{7:d,11:y}),t(p,[2,8]),t(p,[2,9]),t(p,[2,10]),t(c,[2,15]),t(u,[2,13],{7:d,11:y}),t(p,[2,11]),t(p,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,r.K)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,r.K)(function(t){var e=this,i=[0],s=[],n=[null],a=[],h=this.table,l="",o=0,c=0,u=0,d=a.slice.call(arguments,1),y=Object.create(this.lexer),p={};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p[g]=this.yy[g]);y.setInput(t,p),p.lexer=y,p.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;a.push(f);var k=y.options&&y.options.ranges;function m(){var t;return"number"!=typeof(t=s.pop()||y.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.parseError?this.parseError=p.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,r.K)(function(t){i.length=i.length-2*t,n.length=n.length-t,a.length=a.length-t},"popStack"),(0,r.K)(m,"lex");for(var w,x,_,b,v,S,K,$,I,E={};;){if(_=i[i.length-1],this.defaultActions[_]?b=this.defaultActions[_]:(null==w&&(w=m()),b=h[_]&&h[_][w]),void 0===b||!b.length||!b[0]){var A="";for(S in I=[],h[_])this.terminals_[S]&&S>2&&I.push("'"+this.terminals_[S]+"'");A=y.showPosition?"Parse error on line "+(o+1)+":\n"+y.showPosition()+"\nExpecting "+I.join(", ")+", got '"+(this.terminals_[w]||w)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==w?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(A,{text:y.match,token:this.terminals_[w]||w,line:y.yylineno,loc:f,expected:I})}if(b[0]instanceof Array&&b.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+w);switch(b[0]){case 1:i.push(w),n.push(y.yytext),a.push(y.yylloc),i.push(b[1]),w=null,x?(w=x,x=null):(c=y.yyleng,l=y.yytext,o=y.yylineno,f=y.yylloc,u>0&&u--);break;case 2:if(K=this.productions_[b[1]][1],E.$=n[n.length-K],E._$={first_line:a[a.length-(K||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(K||1)].first_column,last_column:a[a.length-1].last_column},k&&(E._$.range=[a[a.length-(K||1)].range[0],a[a.length-1].range[1]]),void 0!==(v=this.performAction.apply(E,[l,c,o,p,b[1],n,a].concat(d))))return v;K&&(i=i.slice(0,-1*K*2),n=n.slice(0,-1*K),a=a.slice(0,-1*K)),i.push(this.productions_[b[1]][0]),n.push(E.$),a.push(E._$),$=h[i[i.length-2]][i[i.length-1]],i.push($);break;case 3:return!0}}return!0},"parse")};function f(){this.yy={}}return g.lexer={EOF:1,parseError:(0,r.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,r.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,r.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,r.K)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===s.length?this.yylloc.first_column:0)+s[s.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,r.K)(function(){return this._more=!0,this},"more"),reject:(0,r.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,r.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,r.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,r.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,r.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,r.K)(function(t,e){var i,s,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var a in n)this[a]=n[a];return!1},"test_match"),next:(0,r.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,s,n=this._currentRules(),a=0;ae[0].length)){if(e=i,s=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,r.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,r.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,r.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,r.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,r.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,r.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,r.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,r.K)(function(t,e,i,s){switch(i){case 0:case 3:return 6;case 1:case 2:return 8;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}},(0,r.K)(f,"Parser"),f.prototype=g,g.Parser=f,new f}();l.parser=l;var o=class{constructor(){this.stack=[],this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{(0,r.K)(this,"IshikawaDB")}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,(0,a.IU)()}getRoot(){return this.root}addNode(t,e){let i=a.Y2.sanitizeText(e,(0,a.D7)());if(!this.root){this.root={text:i,children:[]},this.stack=[{level:0,node:this.root}],(0,a.ke)(i);return}this.baseLevel??=t;let s=t-this.baseLevel+1;for(s<=0&&(s=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=s;)this.stack.pop();let n=this.stack[this.stack.length-1].node,r={text:i,children:[]};n.children.push(r),this.stack.push({level:s,node:r})}getAccTitle(){return(0,a.iN)()}setAccTitle(t){(0,a.SV)(t)}getAccDescription(){return(0,a.m7)()}setAccDescription(t){(0,a.EI)(t)}getDiagramTitle(){return(0,a.ab)()}setDiagramTitle(t){(0,a.ke)(t)}},c=82*Math.PI/180,u=Math.cos(c),d=Math.sin(c),y=(0,r.K)((t,e,i)=>{let s=t.node().getBBox(),n=s.width+2*e,r=s.height+2*e;(0,a.a$)(t,r,n,i),t.attr("viewBox",`${s.x-e} ${s.y-e} ${n} ${r}`)},"applyPaddedViewBox"),p=(0,r.K)((t,e,i,r)=>{let l=r.db.getRoot();if(!l)return;let o=(0,a.D7)(),{look:c,handDrawnSeed:u,themeVariables:d}=o,p=(0,n.I5)(o.fontSize)[0]??14,k="handDrawn"===c,m=l.children??[],w=o.ishikawa?.diagramPadding??20,_=o.ishikawa?.useMaxWidth??!1,b=(0,s.D)(e),v=b.append("g").attr("class","ishikawa"),S=k?h.A.svg(b.node()):void 0,$=S?{roughSvg:S,seed:u??0,lineColor:d?.lineColor??"#333",fillColor:d?.mainBkg??"#fff"}:void 0,I=`ishikawa-arrow-${e}`;k||v.append("defs").append("marker").attr("id",I).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let E=0,A=250,C=k?void 0:K(v,E,A,E,A,"ishikawa-spine");if(f(v,E,A,l.text,p,$),!m.length){k&&K(v,E,A,E,A,"ishikawa-spine",$),y(b,w,_);return}E-=20;let L=m.filter((t,e)=>e%2==0),M=m.filter((t,e)=>e%2==1),P=g(L),T=g(M),B=P.total+T.total,N=250,D=250;B>0&&(N=Math.max(75,500*(P.total/B)),D=Math.max(75,500*(T.total/B)));let O=2*p;N=Math.max(N,P.max*O),D=Math.max(D,T.max*O),A=Math.max(N,250),C&&C.attr("y1",A).attr("y2",A),v.select(".ishikawa-head-group").attr("transform",`translate(0,${A})`);let W=Math.ceil(m.length/2);for(let t=0;tMath.min(t,e.getBBox().x),1/0)}if(k)K(v,E,A,0,A,"ishikawa-spine",$);else{C.attr("x1",E);let t=`url(#${I})`;v.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",t)}y(b,w,_)},"draw"),g=(0,r.K)(t=>{let e=(0,r.K)(t=>t.children.reduce((t,i)=>t+1+e(i),0),"countDescendants");return t.reduce((t,i)=>{let s=e(i);return t.total+=s,t.max=Math.max(t.max,s),t},{total:0,max:0})},"sideStats"),f=(0,r.K)((t,e,i,s,n,a)=>{let r=Math.max(6,Math.floor(110/(.6*n))),h=t.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${e},${i})`),l=v(h,b(s,r),0,0,"ishikawa-head-label","start",n),o=l.node().getBBox(),c=Math.max(60,o.width+6),u=Math.max(40,2*o.height+40),d=`M 0 ${-u/2} L 0 ${u/2} Q ${2.4*c} 0 0 ${-u/2} Z`;if(a){let t=a.roughSvg.path(d,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});h.insert(()=>t,":first-child").attr("class","ishikawa-head")}else h.insert("path",":first-child").attr("class","ishikawa-head").attr("d",d);l.attr("transform",`translate(${(c-o.width)/2-o.x+3},${-o.y-o.height/2})`)},"drawHead"),k=(0,r.K)((t,e)=>{let i=[],s=[],n=(0,r.K)((t,a,r)=>{for(let h of -1===e?[...t].reverse():t){let t=i.length,e=h.children??[];i.push({depth:r,text:b(h.text,15),parentIndex:a,childCount:e.length}),r%2==0?(s.push(t),e.length&&n(e,t,r+1)):(e.length&&n(e,t,r+1),s.push(t))}},"walk");return n(t,-1,2),{entries:i,yOrder:s}},"flattenTree"),m=(0,r.K)((t,e,i,s,n,a,r)=>{let h=t.append("g").attr("class","ishikawa-label-group"),l=v(h,e,i,s+11*n,"ishikawa-label cause","middle",a).node().getBBox();if(r){let t=r.roughSvg.rectangle(l.x-20,l.y-2,l.width+40,l.height+4,{roughness:1.5,seed:r.seed,fill:r.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:r.lineColor,strokeWidth:2});h.insert(()=>t,":first-child").attr("class","ishikawa-label-box")}else h.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",l.x-20).attr("y",l.y-2).attr("width",l.width+40).attr("height",l.height+4)},"drawCauseLabel"),w=(0,r.K)((t,e,i,s,n,a)=>{let r=Math.sqrt(s*s+n*n);if(0===r)return;let h=s/r,l=n/r,o=-(6*l),c=6*h,u=`M ${e} ${i} L ${e-6*h*2+o} ${i-6*l*2+c} L ${e-6*h*2-o} ${i-6*l*2-c} Z`,d=a.roughSvg.path(u,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:"solid",stroke:a.lineColor,strokeWidth:1});t.append(()=>d)},"drawArrowMarker"),x=(0,r.K)((t,e,i,s,n,a,r,h)=>{let l=e.children??[],o=a*(l.length?1:.2),c=d*o*n,y=i+-u*o,p=s+c;if(K(t,i,s,y,p,"ishikawa-branch",h),h&&w(t,i,s,i-y,s-p,h),m(t,e.text,y,p,n,r,h),!l.length)return;let{entries:g,yOrder:f}=k(l,n),x=g.length,_=Array(x);for(let[t,e]of f.entries())_[e]=s+(t+1)/(x+1)*c;let b=new Map;b.set(-1,{x0:i,y0:s,x1:y,y1:p,childCount:l.length,childrenDrawn:0});let $=-u,I=d*n,E=n<0?"ishikawa-label up":"ishikawa-label down";for(let[e,i]of g.entries()){let s=_[e],n=b.get(i.parentIndex),a=t.append("g").attr("class","ishikawa-sub-group"),l=0,o=0,c=0;if(i.depth%2==0){let t=n.y1-n.y0;l=S(n.x0,n.x1,t?(s-n.y0)/t:.5),o=s,c=l-(i.childCount>0?60+5*i.childCount:30),K(a,l,s,c,s,"ishikawa-sub-branch",h),h&&w(a,l,s,1,0,h),v(a,i.text,c,s,"ishikawa-label align","end",r)}else{let t=n.childrenDrawn++;c=(l=S(n.x0,n.x1,(n.childCount-t)/(n.childCount+1)))+(s-(o=n.y0))/I*$,K(a,l,o,c,s,"ishikawa-sub-branch",h),h&&w(a,l,o,l-c,o-s,h),v(a,i.text,c,s,E,"end",r)}i.childCount>0&&b.set(e,{x0:l,y0:o,x1:c,y1:s,childCount:i.childCount,childrenDrawn:0})}},"drawBranch"),_=(0,r.K)(t=>t.split(/ |\n/),"splitLines"),b=(0,r.K)((t,e)=>{if(t.length<=e)return t;let i=[];for(let s of t.split(/\s+/)){let t=i.length-1;t>=0&&i[t].length+1+s.length<=e?i[t]+=" "+s:i.push(s)}return i.join("\n")},"wrapText"),v=(0,r.K)((t,e,i,s,n,a,r)=>{let h=_(e),l=1.05*r,o=t.append("text").attr("class",n).attr("text-anchor",a).attr("x",i).attr("y",s-(h.length-1)*l/2);for(let[t,e]of h.entries())o.append("tspan").attr("x",i).attr("dy",0===t?0:l).text(e);return o},"drawMultilineText"),S=(0,r.K)((t,e,i)=>t+(e-t)*i,"lerp"),K=(0,r.K)((t,e,i,s,n,a,r)=>{if(r){let h=r.roughSvg.line(e,i,s,n,{roughness:1.5,seed:r.seed,stroke:r.lineColor,strokeWidth:2});t.append(()=>h).attr("class",a);return}return t.append("line").attr("class",a).attr("x1",e).attr("y1",i).attr("x2",s).attr("y2",n)},"drawLine"),$={parser:l,get db(){return new o},renderer:{draw:p},styles:(0,r.K)(t=>`
-.ishikawa .ishikawa-spine,
-.ishikawa .ishikawa-branch,
-.ishikawa .ishikawa-sub-branch {
- stroke: ${t.lineColor};
- stroke-width: 2;
- fill: none;
-}
-
-.ishikawa .ishikawa-sub-branch {
- stroke-width: 1;
-}
-
-.ishikawa .ishikawa-arrow {
- fill: ${t.lineColor};
-}
-
-.ishikawa .ishikawa-head {
- fill: ${t.mainBkg};
- stroke: ${t.lineColor};
- stroke-width: 2;
-}
-
-.ishikawa .ishikawa-label-box {
- fill: ${t.mainBkg};
- stroke: ${t.lineColor};
- stroke-width: 2;
-}
-
-.ishikawa text {
- font-family: ${t.fontFamily};
- font-size: ${t.fontSize};
- fill: ${t.textColor};
-}
-
-.ishikawa .ishikawa-head-label {
- font-weight: 600;
- text-anchor: middle;
- dominant-baseline: middle;
- font-size: 14px;
-}
-
-.ishikawa .ishikawa-label {
- text-anchor: end;
-}
-
-.ishikawa .ishikawa-label.cause {
- text-anchor: middle;
- dominant-baseline: middle;
-}
-
-.ishikawa .ishikawa-label.align {
- text-anchor: end;
- dominant-baseline: middle;
-}
-
-.ishikawa .ishikawa-label.up {
- dominant-baseline: baseline;
-}
-
-.ishikawa .ishikawa-label.down {
- dominant-baseline: hanging;
-}
-`,"getStyles")}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1331.eabb2f8646c750f7.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1331.eabb2f8646c750f7.js
deleted file mode 100644
index 2c1497360..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1331.eabb2f8646c750f7.js
+++ /dev/null
@@ -1,79 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1331],{24002:(e,t,s)=>{s.d(t,{P:()=>a});var i=s(69301),r=s(98999),n=s(91158),a=(0,n.K)((e,t,s,n)=>{e.attr("class",s);let{width:a,height:c,x:h,y:u}=l(e,t);(0,i.a$)(e,c,a,n);let y=o(h,u,a,c,t);e.attr("viewBox",y),r.R.debug(`viewBox configured: ${y} with padding: ${t}`)},"setupViewPortForSVG"),l=(0,n.K)((e,t)=>{let s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*t,height:s.height+2*t,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),o=(0,n.K)((e,t,s,i,r)=>`${e-r} ${t-r} ${s} ${i}`,"createViewBox")},31331:(e,t,s)=>{s.d(t,{diagram:()=>p});var i=s(74773),r=s(24002),n=s(33807);s(48734),s(11232),s(13031),s(69981),s(5663),s(82142),s(29278);var a=s(13892),l=s(69301),o=s(98999),c=s(91158),h=function(){var e=(0,c.K)(function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s},"o"),t=[1,3],s=[1,4],i=[1,5],r=[1,6],n=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],a=[1,22],l=[2,7],o=[1,26],h=[1,27],u=[1,28],y=[1,29],m=[1,33],d=[1,34],E=[1,35],p=[1,36],R=[1,37],g=[1,38],_=[1,24],f=[1,31],S=[1,32],I=[1,30],b=[1,39],T=[1,40],k=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],N=[1,61],q=[89,90],C=[5,8,9,11,13,21,22,23,24,27,29,41,42,43,44,45,46,54,61,63,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],A=[27,29],L=[1,70],$=[1,71],v=[1,72],x=[1,73],w=[1,74],O=[1,75],D=[1,76],M=[1,83],F=[1,80],K=[1,84],P=[1,85],V=[1,86],U=[1,87],Y=[1,88],B=[1,89],Q=[1,90],H=[1,91],W=[1,92],j=[5,8,9,11,13,21,22,23,24,27,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],z=[63,64],G=[1,101],X=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],J=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,75,76,77,80,81,82,83,84,85,86,87,88,89,90],Z=[1,110],ee=[1,106],et=[1,107],es=[1,108],ei=[1,109],er=[1,111],en=[1,116],ea=[1,117],el=[1,114],eo=[1,115],ec={trace:(0,c.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,direction:17,styleStatement:18,classDefStatement:19,classStatement:20,direction_tb:21,direction_bt:22,direction_rl:23,direction_lr:24,requirementType:25,requirementName:26,STRUCT_START:27,requirementBody:28,STYLE_SEPARATOR:29,idList:30,ID:31,COLONSEP:32,id:33,TEXT:34,text:35,RISK:36,riskLevel:37,VERIFYMTHD:38,verifyType:39,STRUCT_STOP:40,REQUIREMENT:41,FUNCTIONAL_REQUIREMENT:42,INTERFACE_REQUIREMENT:43,PERFORMANCE_REQUIREMENT:44,PHYSICAL_REQUIREMENT:45,DESIGN_CONSTRAINT:46,LOW_RISK:47,MED_RISK:48,HIGH_RISK:49,VERIFY_ANALYSIS:50,VERIFY_DEMONSTRATION:51,VERIFY_INSPECTION:52,VERIFY_TEST:53,ELEMENT:54,elementName:55,elementBody:56,TYPE:57,type:58,DOCREF:59,ref:60,END_ARROW_L:61,relationship:62,LINE:63,END_ARROW_R:64,CONTAINS:65,COPIES:66,DERIVES:67,SATISFIES:68,VERIFIES:69,REFINES:70,TRACES:71,CLASSDEF:72,stylesOpt:73,CLASS:74,ALPHA:75,COMMA:76,STYLE:77,style:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,MINUS:86,LABEL:87,SEMICOLON:88,unqString:89,qString:90,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",21:"direction_tb",22:"direction_bt",23:"direction_rl",24:"direction_lr",27:"STRUCT_START",29:"STYLE_SEPARATOR",31:"ID",32:"COLONSEP",34:"TEXT",36:"RISK",38:"VERIFYMTHD",40:"STRUCT_STOP",41:"REQUIREMENT",42:"FUNCTIONAL_REQUIREMENT",43:"INTERFACE_REQUIREMENT",44:"PERFORMANCE_REQUIREMENT",45:"PHYSICAL_REQUIREMENT",46:"DESIGN_CONSTRAINT",47:"LOW_RISK",48:"MED_RISK",49:"HIGH_RISK",50:"VERIFY_ANALYSIS",51:"VERIFY_DEMONSTRATION",52:"VERIFY_INSPECTION",53:"VERIFY_TEST",54:"ELEMENT",57:"TYPE",59:"DOCREF",61:"END_ARROW_L",63:"LINE",64:"END_ARROW_R",65:"CONTAINS",66:"COPIES",67:"DERIVES",68:"SATISFIES",69:"VERIFIES",70:"REFINES",71:"TRACES",72:"CLASSDEF",74:"CLASS",75:"ALPHA",76:"COMMA",77:"STYLE",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",86:"MINUS",87:"LABEL",88:"SEMICOLON",89:"unqString",90:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[17,1],[17,1],[17,1],[17,1],[14,5],[14,7],[28,5],[28,5],[28,5],[28,5],[28,2],[28,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[37,1],[37,1],[37,1],[39,1],[39,1],[39,1],[39,1],[15,5],[15,7],[56,5],[56,5],[56,2],[56,1],[16,5],[16,5],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[62,1],[19,3],[20,3],[20,3],[30,1],[30,3],[30,1],[30,3],[18,3],[73,1],[73,3],[78,1],[78,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[26,1],[26,1],[33,1],[33,1],[35,1],[35,1],[55,1],[55,1],[58,1],[58,1],[60,1],[60,1]],performAction:(0,c.K)(function(e,t,s,i,r,n,a){var l=n.length-1;switch(r){case 4:this.$=n[l].trim(),i.setAccTitle(this.$);break;case 5:case 6:this.$=n[l].trim(),i.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:i.setDirection("TB");break;case 18:i.setDirection("BT");break;case 19:i.setDirection("RL");break;case 20:i.setDirection("LR");break;case 21:i.addRequirement(n[l-3],n[l-4]);break;case 22:i.addRequirement(n[l-5],n[l-6]),i.setClass([n[l-5]],n[l-3]);break;case 23:i.setNewReqId(n[l-2]);break;case 24:i.setNewReqText(n[l-2]);break;case 25:i.setNewReqRisk(n[l-2]);break;case 26:i.setNewReqVerifyMethod(n[l-2]);break;case 29:this.$=i.RequirementType.REQUIREMENT;break;case 30:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=i.RiskLevel.LOW_RISK;break;case 36:this.$=i.RiskLevel.MED_RISK;break;case 37:this.$=i.RiskLevel.HIGH_RISK;break;case 38:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=i.VerifyType.VERIFY_TEST;break;case 42:i.addElement(n[l-3]);break;case 43:i.addElement(n[l-5]),i.setClass([n[l-5]],n[l-3]);break;case 44:i.setNewElementType(n[l-2]);break;case 45:i.setNewElementDocRef(n[l-2]);break;case 48:i.addRelationship(n[l-2],n[l],n[l-4]);break;case 49:i.addRelationship(n[l-2],n[l-4],n[l]);break;case 50:this.$=i.Relationships.CONTAINS;break;case 51:this.$=i.Relationships.COPIES;break;case 52:this.$=i.Relationships.DERIVES;break;case 53:this.$=i.Relationships.SATISFIES;break;case 54:this.$=i.Relationships.VERIFIES;break;case 55:this.$=i.Relationships.REFINES;break;case 56:this.$=i.Relationships.TRACES;break;case 57:this.$=n[l-2],i.defineClass(n[l-1],n[l]);break;case 58:i.setClass(n[l-1],n[l]);break;case 59:i.setClass([n[l-2]],n[l]);break;case 60:case 62:case 65:this.$=[n[l]];break;case 61:case 63:this.$=n[l-2].concat([n[l]]);break;case 64:this.$=n[l-2],i.setCssStyle(n[l-1],n[l]);break;case 66:n[l-2].push(n[l]),this.$=n[l-2];break;case 68:this.$=n[l-1]+n[l]}},"anonymous"),table:[{3:1,4:2,6:t,9:s,11:i,13:r},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:s,11:i,13:r},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(n,[2,6]),{3:12,4:2,6:t,9:s,11:i,13:r},{1:[2,2]},{4:17,5:a,7:13,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},e(n,[2,4]),e(n,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:a,7:42,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:43,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:44,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:45,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:46,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:47,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:48,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:49,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{4:17,5:a,7:50,8:l,9:s,11:i,13:r,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:o,22:h,23:u,24:y,25:23,33:25,41:m,42:d,43:E,44:p,45:R,46:g,54:_,72:f,74:S,77:I,89:b,90:T},{26:51,89:[1,52],90:[1,53]},{55:54,89:[1,55],90:[1,56]},{29:[1,59],61:[1,57],63:[1,58]},e(k,[2,17]),e(k,[2,18]),e(k,[2,19]),e(k,[2,20]),{30:60,33:62,75:N,89:b,90:T},{30:63,33:62,75:N,89:b,90:T},{30:64,33:62,75:N,89:b,90:T},e(q,[2,29]),e(q,[2,30]),e(q,[2,31]),e(q,[2,32]),e(q,[2,33]),e(q,[2,34]),e(C,[2,81]),e(C,[2,82]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{8:[2,13]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{27:[1,65],29:[1,66]},e(A,[2,79]),e(A,[2,80]),{27:[1,67],29:[1,68]},e(A,[2,85]),e(A,[2,86]),{62:69,65:L,66:$,67:v,68:x,69:w,70:O,71:D},{62:77,65:L,66:$,67:v,68:x,69:w,70:O,71:D},{30:78,33:62,75:N,89:b,90:T},{73:79,75:M,76:F,78:81,79:82,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:W},e(j,[2,60]),e(j,[2,62]),{73:93,75:M,76:F,78:81,79:82,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:W},{30:94,33:62,75:N,76:F,89:b,90:T},{5:[1,95]},{30:96,33:62,75:N,89:b,90:T},{5:[1,97]},{30:98,33:62,75:N,89:b,90:T},{63:[1,99]},e(z,[2,50]),e(z,[2,51]),e(z,[2,52]),e(z,[2,53]),e(z,[2,54]),e(z,[2,55]),e(z,[2,56]),{64:[1,100]},e(k,[2,59],{76:F}),e(k,[2,64],{76:G}),{33:103,75:[1,102],89:b,90:T},e(X,[2,65],{79:104,75:M,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:W}),e(J,[2,67]),e(J,[2,69]),e(J,[2,70]),e(J,[2,71]),e(J,[2,72]),e(J,[2,73]),e(J,[2,74]),e(J,[2,75]),e(J,[2,76]),e(J,[2,77]),e(J,[2,78]),e(k,[2,57],{76:G}),e(k,[2,58],{76:F}),{5:Z,28:105,31:ee,34:et,36:es,38:ei,40:er},{27:[1,112],76:F},{5:en,40:ea,56:113,57:el,59:eo},{27:[1,118],76:F},{33:119,89:b,90:T},{33:120,89:b,90:T},{75:M,78:121,79:82,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:W},e(j,[2,61]),e(j,[2,63]),e(J,[2,68]),e(k,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:Z,28:126,31:ee,34:et,36:es,38:ei,40:er},e(k,[2,28]),{5:[1,127]},e(k,[2,42]),{32:[1,128]},{32:[1,129]},{5:en,40:ea,56:130,57:el,59:eo},e(k,[2,47]),{5:[1,131]},e(k,[2,48]),e(k,[2,49]),e(X,[2,66],{79:104,75:M,80:K,81:P,82:V,83:U,84:Y,85:B,86:Q,87:H,88:W}),{33:132,89:b,90:T},{35:133,89:[1,134],90:[1,135]},{37:136,47:[1,137],48:[1,138],49:[1,139]},{39:140,50:[1,141],51:[1,142],52:[1,143],53:[1,144]},e(k,[2,27]),{5:Z,28:145,31:ee,34:et,36:es,38:ei,40:er},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(k,[2,46]),{5:en,40:ea,56:152,57:el,59:eo},{5:[1,153]},{5:[1,154]},{5:[2,83]},{5:[2,84]},{5:[1,155]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[1,156]},{5:[2,38]},{5:[2,39]},{5:[2,40]},{5:[2,41]},e(k,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(k,[2,43]),{5:Z,28:159,31:ee,34:et,36:es,38:ei,40:er},{5:Z,28:160,31:ee,34:et,36:es,38:ei,40:er},{5:Z,28:161,31:ee,34:et,36:es,38:ei,40:er},{5:Z,28:162,31:ee,34:et,36:es,38:ei,40:er},{5:en,40:ea,56:163,57:el,59:eo},{5:en,40:ea,56:164,57:el,59:eo},e(k,[2,23]),e(k,[2,24]),e(k,[2,25]),e(k,[2,26]),e(k,[2,44]),e(k,[2,45])],defaultActions:{8:[2,2],12:[2,1],41:[2,3],42:[2,8],43:[2,9],44:[2,10],45:[2,11],46:[2,12],47:[2,13],48:[2,14],49:[2,15],50:[2,16],134:[2,83],135:[2,84],137:[2,35],138:[2,36],139:[2,37],141:[2,38],142:[2,39],143:[2,40],144:[2,41],147:[2,87],148:[2,88],150:[2,89],151:[2,90]},parseError:(0,c.K)(function(e,t){if(t.recoverable)this.trace(e);else{var s=Error(e);throw s.hash=t,s}},"parseError"),parse:(0,c.K)(function(e){var t=this,s=[0],i=[],r=[null],n=[],a=this.table,l="",o=0,h=0,u=0,y=n.slice.call(arguments,1),m=Object.create(this.lexer),d={};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(d[E]=this.yy[E]);m.setInput(e,d),d.lexer=m,d.parser=this,void 0===m.yylloc&&(m.yylloc={});var p=m.yylloc;n.push(p);var R=m.options&&m.options.ranges;function g(){var e;return"number"!=typeof(e=i.pop()||m.lex()||1)&&(e instanceof Array&&(e=(i=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof d.parseError?this.parseError=d.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,c.K)(function(e){s.length=s.length-2*e,r.length=r.length-e,n.length=n.length-e},"popStack"),(0,c.K)(g,"lex");for(var _,f,S,I,b,T,k,N,q,C={};;){if(S=s[s.length-1],this.defaultActions[S]?I=this.defaultActions[S]:(null==_&&(_=g()),I=a[S]&&a[S][_]),void 0===I||!I.length||!I[0]){var A="";for(T in q=[],a[S])this.terminals_[T]&&T>2&&q.push("'"+this.terminals_[T]+"'");A=m.showPosition?"Parse error on line "+(o+1)+":\n"+m.showPosition()+"\nExpecting "+q.join(", ")+", got '"+(this.terminals_[_]||_)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==_?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(A,{text:m.match,token:this.terminals_[_]||_,line:m.yylineno,loc:p,expected:q})}if(I[0]instanceof Array&&I.length>1)throw Error("Parse Error: multiple actions possible at state: "+S+", token: "+_);switch(I[0]){case 1:s.push(_),r.push(m.yytext),n.push(m.yylloc),s.push(I[1]),_=null,f?(_=f,f=null):(h=m.yyleng,l=m.yytext,o=m.yylineno,p=m.yylloc,u>0&&u--);break;case 2:if(k=this.productions_[I[1]][1],C.$=r[r.length-k],C._$={first_line:n[n.length-(k||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(k||1)].first_column,last_column:n[n.length-1].last_column},R&&(C._$.range=[n[n.length-(k||1)].range[0],n[n.length-1].range[1]]),void 0!==(b=this.performAction.apply(C,[l,h,o,d,I[1],r,n].concat(y))))return b;k&&(s=s.slice(0,-1*k*2),r=r.slice(0,-1*k),n=n.slice(0,-1*k)),s.push(this.productions_[I[1]][0]),r.push(C.$),n.push(C._$),N=a[s[s.length-2]][s[s.length-1]],s.push(N);break;case 3:return!0}}return!0},"parse")};function eh(){this.yy={}}return ec.lexer={EOF:1,parseError:(0,c.K)(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},"parseError"),setInput:(0,c.K)(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,c.K)(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},"input"),unput:(0,c.K)(function(e){var t=e.length,s=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},"unput"),more:(0,c.K)(function(){return this._more=!0,this},"more"),reject:(0,c.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,c.K)(function(e){this.unput(this.match.slice(e))},"less"),pastInput:(0,c.K)(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,c.K)(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,c.K)(function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},"showPosition"),test_match:(0,c.K)(function(e,t){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],s=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var n in r)this[n]=r[n];return!1},"test_match"),next:(0,c.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,s,i,r=this._currentRules(),n=0;nt[0].length)){if(t=s,i=n,this.options.backtrack_lexer){if(!1!==(e=this.test_match(s,r[n])))return e;if(!this._backtrack)return!1;t=!1;continue}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,r[i]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,c.K)(function(){var e=this.next();return e||this.lex()},"lex"),begin:(0,c.K)(function(e){this.conditionStack.push(e)},"begin"),popState:(0,c.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,c.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,c.K)(function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},"topState"),pushState:(0,c.K)(function(e){this.begin(e)},"pushState"),stateStackSize:(0,c.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,c.K)(function(e,t,s,i){switch(s){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 58:case 65:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 21;case 9:return 22;case 10:return 23;case 11:return 24;case 12:return 5;case 13:case 14:case 15:case 56:break;case 16:return 8;case 17:return 6;case 18:return 27;case 19:return 40;case 20:return 29;case 21:return 32;case 22:return 31;case 23:return 34;case 24:return 36;case 25:return 38;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 45;case 31:return 46;case 32:return 47;case 33:return 48;case 34:return 49;case 35:return 50;case 36:return 51;case 37:return 52;case 38:return 53;case 39:return 54;case 40:return 65;case 41:return 66;case 42:return 67;case 43:return 68;case 44:return 69;case 45:return 70;case 46:return 71;case 47:return 57;case 48:return 59;case 49:return this.begin("style"),77;case 50:case 68:return 75;case 51:return 81;case 52:return 88;case 53:return"PERCENT";case 54:return 86;case 55:return 84;case 57:case 64:this.begin("string");break;case 59:return this.begin("style"),72;case 60:return this.begin("style"),74;case 61:return 61;case 62:return 64;case 63:return 63;case 66:return"qString";case 67:return t.yytext=t.yytext.trim(),89;case 69:return 80;case 70:return 76}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::{3})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:style\b)/i,/^(?:\w+)/i,/^(?::)/i,/^(?:;)/i,/^(?:%)/i,/^(?:-)/i,/^(?:#)/i,/^(?: )/i,/^(?:["])/i,/^(?:\n)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^:,\r\n\{\<\>\-\=]*)/i,/^(?:\w+)/i,/^(?:[0-9]+)/i,/^(?:,)/i],conditions:{acc_descr_multiline:{rules:[6,7,68,69,70],inclusive:!1},acc_descr:{rules:[4,68,69,70],inclusive:!1},acc_title:{rules:[2,68,69,70],inclusive:!1},style:{rules:[50,51,52,53,54,55,56,57,58,68,69,70],inclusive:!1},unqString:{rules:[68,69,70],inclusive:!1},token:{rules:[68,69,70],inclusive:!1},string:{rules:[65,66,68,69,70],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,59,60,61,62,63,64,67,68,69,70],inclusive:!0}}},(0,c.K)(eh,"Parser"),eh.prototype=ec,ec.Parser=eh,new eh}();h.parser=h;var u=class{constructor(){this.relations=[],this.latestRequirement=this.getInitialRequirement(),this.requirements=new Map,this.latestElement=this.getInitialElement(),this.elements=new Map,this.classes=new Map,this.direction="TB",this.RequirementType={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},this.RiskLevel={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},this.VerifyType={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},this.Relationships={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},this.setAccTitle=l.SV,this.getAccTitle=l.iN,this.setAccDescription=l.EI,this.getAccDescription=l.m7,this.setDiagramTitle=l.ke,this.getDiagramTitle=l.ab,this.getConfig=(0,c.K)(()=>(0,l.D7)().requirement,"getConfig"),this.clear(),this.setDirection=this.setDirection.bind(this),this.addRequirement=this.addRequirement.bind(this),this.setNewReqId=this.setNewReqId.bind(this),this.setNewReqRisk=this.setNewReqRisk.bind(this),this.setNewReqText=this.setNewReqText.bind(this),this.setNewReqVerifyMethod=this.setNewReqVerifyMethod.bind(this),this.addElement=this.addElement.bind(this),this.setNewElementType=this.setNewElementType.bind(this),this.setNewElementDocRef=this.setNewElementDocRef.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setCssStyle=this.setCssStyle.bind(this),this.setClass=this.setClass.bind(this),this.defineClass=this.defineClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}static{(0,c.K)(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}resetLatestRequirement(){this.latestRequirement=this.getInitialRequirement()}resetLatestElement(){this.latestElement=this.getInitialElement()}getInitialRequirement(){return{requirementId:"",text:"",risk:"",verifyMethod:"",name:"",type:"",cssStyles:[],classes:["default"]}}getInitialElement(){return{name:"",type:"",docRef:"",cssStyles:[],classes:["default"]}}addRequirement(e,t){return this.requirements.has(e)||this.requirements.set(e,{name:e,type:t,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){void 0!==this.latestRequirement&&(this.latestRequirement.requirementId=e)}setNewReqText(e){void 0!==this.latestRequirement&&(this.latestRequirement.text=e)}setNewReqRisk(e){void 0!==this.latestRequirement&&(this.latestRequirement.risk=e)}setNewReqVerifyMethod(e){void 0!==this.latestRequirement&&(this.latestRequirement.verifyMethod=e)}addElement(e){return this.elements.has(e)||(this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),o.R.info("Added new element: ",e)),this.resetLatestElement(),this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){void 0!==this.latestElement&&(this.latestElement.type=e)}setNewElementDocRef(e){void 0!==this.latestElement&&(this.latestElement.docRef=e)}addRelationship(e,t,s){this.relations.push({type:e,src:t,dst:s})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,(0,l.IU)()}setCssStyle(e,t){for(let s of e){let e=this.requirements.get(s)??this.elements.get(s);if(!t||!e)return;for(let s of t)s.includes(",")?e.cssStyles.push(...s.split(",")):e.cssStyles.push(s)}}setClass(e,t){for(let s of e){let e=this.requirements.get(s)??this.elements.get(s);if(e)for(let s of t){e.classes.push(s);let t=this.classes.get(s)?.styles;t&&e.cssStyles.push(...t)}}}defineClass(e,t){for(let s of e){let e=this.classes.get(s);void 0===e&&(e={id:s,styles:[],textStyles:[]},this.classes.set(s,e)),t&&t.forEach(function(t){if(/color/.exec(t)){let s=t.replace("fill","bgFill");e.textStyles.push(s)}e.styles.push(t)}),this.requirements.forEach(e=>{e.classes.includes(s)&&e.cssStyles.push(...t.flatMap(e=>e.split(",")))}),this.elements.forEach(e=>{e.classes.includes(s)&&e.cssStyles.push(...t.flatMap(e=>e.split(",")))})}}getClasses(){return this.classes}getData(){let e=(0,l.D7)(),t=[],s=[];for(let s of this.requirements.values())s.id=s.name,s.cssStyles=s.cssStyles,s.cssClasses=s.classes.join(" "),s.shape="requirementBox",s.look=e.look,s.colorIndex=t.length,t.push(s);for(let s of this.elements.values())s.shape="requirementBox",s.look=e.look,s.id=s.name,s.cssStyles=s.cssStyles,s.cssClasses=s.classes.join(" "),s.colorIndex=t.length,t.push(s);let i=0;for(let t of this.relations){let r=t.type===this.Relationships.CONTAINS,n={id:`${t.src}-${t.dst}-${i++}`,start:this.requirements.get(t.src)?.name??this.elements.get(t.src)?.name,end:this.requirements.get(t.dst)?.name??this.elements.get(t.dst)?.name,label:`<<${t.type}>>`,classes:"relationshipLine",style:["fill:none",r?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:r?"normal":"dashed",arrowTypeStart:r?"requirement_contains":"",arrowTypeEnd:r?"":"requirement_arrow",look:e.look,labelType:"markdown"};s.push(n)}return{nodes:t,edges:s,other:{},config:e,direction:this.getDirection()}}},y=(0,c.K)(e=>{let{themeVariables:t,look:s}=(0,l.zj)(),{bkgColorArray:i,borderColorArray:r}=t;if(!r?.length)return"";let n="";for(let t=0;t{let{look:t,themeVariables:s}=(0,l.zj)(),{requirementEdgeLabelBackground:i}=s;return`
- ${y(e)}
- marker {
- fill: ${e.relationColor};
- stroke: ${e.relationColor};
- }
-
- marker.cross {
- stroke: ${e.lineColor};
- }
-
- svg {
- font-family: ${e.fontFamily};
- font-size: ${e.fontSize};
- }
-
- .reqBox {
- fill: ${e.requirementBackground};
- fill-opacity: 1.0;
- stroke: ${e.requirementBorderColor};
- stroke-width: ${e.requirementBorderSize};
- }
-
- .reqTitle, .reqLabel{
- fill: ${e.requirementTextColor};
- }
- .reqLabelBox {
- fill: ${e.relationLabelBackground};
- fill-opacity: 1.0;
- }
-
- .req-title-line {
- stroke: ${e.requirementBorderColor};
- stroke-width: ${e.requirementBorderSize};
- }
- .relationshipLine {
- stroke: ${e.relationColor};
- stroke-width: ${"neo"===t?e.strokeWidth:"1px"};
- }
- .relationshipLabel {
- fill: ${e.relationLabelColor};
- }
- .edgeLabel {
- background-color: ${e.edgeLabelBackground};
- }
- .edgeLabel .label rect {
- fill: ${e.edgeLabelBackground};
- }
- .edgeLabel .label text {
- fill: ${e.relationLabelColor};
- }
- .divider {
- stroke: ${e.nodeBorder};
- stroke-width: 1;
- }
- .label {
- font-family: ${e.fontFamily};
- color: ${e.nodeTextColor||e.textColor};
- }
- .label text,span {
- fill: ${e.nodeTextColor||e.textColor};
- color: ${e.nodeTextColor||e.textColor};
- }
- .labelBkg {
- background-color: ${i??e.edgeLabelBackground};
- }
-
-`},"getStyles"),d={};(0,c.V)(d,{draw:()=>E});var E=(0,c.K)(async function(e,t,s,c){o.R.info("REF0:"),o.R.info("Drawing requirement diagram (unified)",t);let{securityLevel:h,state:u,layout:y,look:m}=(0,l.D7)(),d=c.db.getData(),E=(0,i.A)(t,h);d.type=c.type,d.layoutAlgorithm=(0,n.q7)(y),d.nodeSpacing=u?.nodeSpacing??50,d.rankSpacing=u?.rankSpacing??50,d.markers="neo"===m?["requirement_contains_neo","requirement_arrow_neo"]:["requirement_contains","requirement_arrow"],d.diagramId=t,await (0,n.XX)(d,E),a._K.insertTitle(E,"requirementDiagramTitleText",u?.titleTopMargin??25,c.db.getDiagramTitle()),(0,r.P)(E,8,"requirementDiagram",u?.useMaxWidth??!0)},"draw"),p={parser:h,get db(){return new u},renderer:d,styles:m}},74773:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(91158),r=s(70668),n=(0,i.K)((e,t)=>{let s;return"sandbox"===t&&(s=(0,r.Ltv)("#i"+e)),("sandbox"===t?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1341.d7a3a3c0395b436b.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1341.d7a3a3c0395b436b.js
deleted file mode 100644
index 0e1a3b053..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1341.d7a3a3c0395b436b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1341],{91341:(e,s,c)=>{c.d(s,{createInfoServices:()=>a.v});var a=c(56756);c(9448)}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1363.40382452a688246c.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1363.40382452a688246c.js
deleted file mode 100644
index c9684d043..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1363.40382452a688246c.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1363],{81363:(e,t,r)=>{r.d(t,{diagram:()=>l});var s=r(92440);r(3392),r(74773),r(24002),r(44115),r(33807),r(33332),r(48734),r(11232),r(13031),r(69981),r(5663),r(82142),r(29278),r(13892),r(69301),r(98999);var a=(0,r(91158).K)(e=>`${(0,s.tM)(e)}
- .swimlane.cluster rect {
- stroke: ${e.clusterBorder} !important;
- }
- [data-look="neo"].cluster rect {
- filter: none;
- }
-`,"getStyles"),l=(0,s.ur)({defaultLayout:"swimlane",styles:a})}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/145.319dc2a103ad1b4c.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/145.319dc2a103ad1b4c.js
deleted file mode 100644
index dbfae393e..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/145.319dc2a103ad1b4c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[145],{40145:(e,a,s)=>{s.d(a,{createRailroadEbnfServices:()=>c.W});var c=s(92042);s(9448)}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1831.cd1ebb817d72dfcf.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1831.cd1ebb817d72dfcf.js
deleted file mode 100644
index 0ff764e37..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1831.cd1ebb817d72dfcf.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1831],{55716:(t,e,r)=>{r.d(e,{m:()=>a});var o=r(91158),a=class{constructor(t){this.init=t,this.records=this.init()}static{(0,o.K)(this,"ImperativeState")}reset(){this.records=this.init()}}},71831:(t,e,r)=>{r.d(e,{diagram:()=>tM});var o=r(55716),a=r(84492),i=r(13892),n=r(69301),s=r(98999),c=r(91158),d=r(89321),l=r(70668),h={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$=n.UI.gitGraph,m=(0,c.K)(()=>(0,i.$t)({...$,...(0,n.zj)().gitGraph}),"getConfig"),g=new o.m(()=>{let t=m(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});function p(){return(0,i.yT)({length:7})}function y(t,e){let r=Object.create(null);return t.reduce((t,o)=>{let a=e(o);return r[a]||(r[a]=!0,t.push(o)),t},[])}(0,c.K)(p,"getID"),(0,c.K)(y,"uniqBy");var f=(0,c.K)(function(t){g.records.direction=t},"setDirection"),x=(0,c.K)(function(t){s.R.debug("options str",t),t=(t=t?.trim())||"{}";try{g.records.options=JSON.parse(t)}catch(t){s.R.error("error while parsing gitGraph options",t.message)}},"setOptions"),u=(0,c.K)(function(){return g.records.options},"getOptions"),b=(0,c.K)(function(t){let e=t.msg,r=t.id,o=t.type,a=t.tags;s.R.info("commit",e,r,o,a),s.R.debug("Entering commit:",e,r,o,a);let i=m();r=n.Y2.sanitizeText(r,i),e=n.Y2.sanitizeText(e,i),a=a?.map(t=>n.Y2.sanitizeText(t,i));let c={id:r||g.records.seq+"-"+p(),message:e,seq:g.records.seq++,type:o??h.NORMAL,tags:a??[],parents:null==g.records.head?[]:[g.records.head.id],branch:g.records.currBranch};g.records.head=c,s.R.info("main branch",i.mainBranchName),g.records.commits.has(c.id)&&s.R.warn(`Commit ID ${c.id} already exists`),g.records.commits.set(c.id,c),g.records.branches.set(g.records.currBranch,c.id),s.R.debug("in pushCommit "+c.id)},"commit"),k=(0,c.K)(function(t){let e=t.name,r=t.order;if(e=n.Y2.sanitizeText(e,m()),g.records.branches.has(e))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);g.records.branches.set(e,null!=g.records.head?g.records.head.id:null),g.records.branchConfig.set(e,{name:e,order:r}),E(e),s.R.debug("in createBranch")},"branch"),B=(0,c.K)(t=>{let e=t.branch,r=t.id,o=t.type,a=t.tags,i=m();e=n.Y2.sanitizeText(e,i),r&&(r=n.Y2.sanitizeText(r,i));let c=g.records.branches.get(g.records.currBranch),d=g.records.branches.get(e),l=c?g.records.commits.get(c):void 0,$=d?g.records.commits.get(d):void 0;if(l&&$&&l.branch===e)throw Error(`Cannot merge branch '${e}' into itself.`);if(g.records.currBranch===e){let t=Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(void 0===l||!l){let t=Error(`Incorrect usage of "merge". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},t}if(!g.records.branches.has(e)){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},t}if(void 0===$||!$){let t=Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},t}if(l===$){let t=Error('Incorrect usage of "merge". Both branches have same head');throw t.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},t}if(r&&g.records.commits.has(r)){let t=Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom id");throw t.hash={text:`merge ${e} ${r} ${o} ${a?.join(" ")}`,token:`merge ${e} ${r} ${o} ${a?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${o} ${a?.join(" ")}`]},t}let y={id:r||`${g.records.seq}-${p()}`,message:`merged branch ${e} into ${g.records.currBranch}`,seq:g.records.seq++,parents:null==g.records.head?[]:[g.records.head.id,d||""],branch:g.records.currBranch,type:h.MERGE,customType:o,customId:!!r,tags:a??[]};g.records.head=y,g.records.commits.set(y.id,y),g.records.branches.set(g.records.currBranch,y.id),s.R.debug(g.records.branches),s.R.debug("in mergeBranch")},"merge"),w=(0,c.K)(function(t){let e=t.id,r=t.targetId,o=t.tags,a=t.parent;s.R.debug("Entering cherryPick:",e,r,o);let i=m();if(e=n.Y2.sanitizeText(e,i),r=n.Y2.sanitizeText(r,i),o=o?.map(t=>n.Y2.sanitizeText(t,i)),a=n.Y2.sanitizeText(a,i),!e||!g.records.commits.has(e)){let t=Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let c=g.records.commits.get(e);if(void 0===c||!c)throw Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(a&&!(Array.isArray(c.parents)&&c.parents.includes(a)))throw Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let d=c.branch;if(c.type===h.MERGE&&!a)throw Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!g.records.commits.has(r)){if(d===g.records.currBranch){let t=Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let t=g.records.branches.get(g.records.currBranch);if(void 0===t||!t){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let i=g.records.commits.get(t);if(void 0===i||!i){let t=Error(`Incorrect usage of "cherry-pick". Current branch (${g.records.currBranch})has no commits`);throw t.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},t}let n={id:g.records.seq+"-"+p(),message:`cherry-picked ${c?.message} into ${g.records.currBranch}`,seq:g.records.seq++,parents:null==g.records.head?[]:[g.records.head.id,c.id],branch:g.records.currBranch,type:h.CHERRY_PICK,tags:o?o.filter(Boolean):[`cherry-pick:${c.id}${c.type===h.MERGE?`|parent:${a}`:""}`]};g.records.head=n,g.records.commits.set(n.id,n),g.records.branches.set(g.records.currBranch,n.id),s.R.debug(g.records.branches),s.R.debug("in cherryPick")}},"cherryPick"),E=(0,c.K)(function(t){if(t=n.Y2.sanitizeText(t,m()),g.records.branches.has(t)){g.records.currBranch=t;let e=g.records.branches.get(g.records.currBranch);void 0!==e&&e?g.records.head=g.records.commits.get(e)??null:g.records.head=null}else{let e=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");function T(t,e,r){let o=t.indexOf(e);-1===o?t.push(r):t.splice(o,1,r)}function C(t){let e=t.reduce((t,e)=>t.seq>e.seq?t:e,t[0]),r="";t.forEach(function(t){t===e?r+=" *":r+=" |"});let o=[r,e.id,e.seq];for(let t in g.records.branches)g.records.branches.get(t)===e.id&&o.push(t);if(s.R.debug(o.join(" ")),e.parents&&2==e.parents.length&&e.parents[0]&&e.parents[1]){let r=g.records.commits.get(e.parents[0]);T(t,e,r),e.parents[1]&&t.push(g.records.commits.get(e.parents[1]))}else if(0==e.parents.length)return;else if(e.parents[0]){let r=g.records.commits.get(e.parents[0]);T(t,e,r)}C(t=y(t,t=>t.id))}(0,c.K)(T,"upsert"),(0,c.K)(C,"prettyPrintCommitHistory");var L=(0,c.K)(function(){s.R.debug(g.records.commits),C([I()[0]])},"prettyPrint"),K=(0,c.K)(function(){g.reset(),(0,n.IU)()},"clear"),M=(0,c.K)(function(){return[...g.records.branchConfig.values()].map((t,e)=>null!==t.order&&void 0!==t.order?t:{...t,order:parseFloat(`0.${e}`)}).sort((t,e)=>(t.order??0)-(e.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),R=(0,c.K)(function(){return g.records.branches},"getBranches"),v=(0,c.K)(function(){return g.records.commits},"getCommits"),I=(0,c.K)(function(){let t=[...g.records.commits.values()];return t.forEach(function(t){s.R.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},"getCommitsArray"),P={commitType:h,getConfig:m,setDirection:f,setOptions:x,getOptions:u,commit:b,branch:k,merge:B,cherryPick:w,checkout:E,prettyPrint:L,clear:K,getBranchesAsObjArray:M,getBranches:R,getCommits:v,getCommitsArray:I,getCurrentBranch:(0,c.K)(function(){return g.records.currBranch},"getCurrentBranch"),getDirection:(0,c.K)(function(){return g.records.direction},"getDirection"),getHead:(0,c.K)(function(){return g.records.head},"getHead"),setAccTitle:n.SV,getAccTitle:n.iN,getAccDescription:n.m7,setAccDescription:n.EI,setDiagramTitle:n.ke,getDiagramTitle:n.ab},O=(0,c.K)((t,e)=>{for(let r of((0,a.S)(t,e),t.dir&&e.setDirection(t.dir),t.statements))A(r,e)},"populate"),A=(0,c.K)((t,e)=>{let r={Commit:(0,c.K)(t=>e.commit(G(t)),"Commit"),Branch:(0,c.K)(t=>e.branch(S(t)),"Branch"),Merge:(0,c.K)(t=>e.merge(H(t)),"Merge"),Checkout:(0,c.K)(t=>e.checkout(D(t)),"Checkout"),CherryPicking:(0,c.K)(t=>e.cherryPick(W(t)),"CherryPicking")}[t.$type];r?r(t):s.R.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),G=(0,c.K)(t=>({id:t.id,msg:t.message??"",type:void 0!==t.type?h[t.type]:h.NORMAL,tags:t.tags??void 0}),"parseCommit"),S=(0,c.K)(t=>({name:t.name,order:t.order??0}),"parseBranch"),H=(0,c.K)(t=>({branch:t.branch,id:t.id??"",type:void 0!==t.type?h[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),D=(0,c.K)(t=>t.branch,"parseCheckout"),W=(0,c.K)(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),q={parse:(0,c.K)(async t=>{let e=await (0,d.qg)("gitGraph",t);s.R.debug(e),O(e,P)},"parse")},_=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),z=new Set(["redux-color","redux-dark-color"]),Y=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),N=(0,c.K)((t,e,r=!1)=>r&&t>0?(t-1)%(e-1)+1:t%e,"calcColorIndex"),j=new Map,F=new Map,U=new Map,V=[],J=0,Q="LR",X=(0,c.K)(()=>{j.clear(),F.clear(),U.clear(),J=0,V=[],Q="LR"},"clear"),Z=(0,c.K)(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return("string"==typeof t?t.split(/\\n|\n| /gi):t).forEach(t=>{let r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}),e},"drawText"),tt=(0,c.K)(t=>{let e,r,o;return"BT"===Q?(r=(0,c.K)((t,e)=>t<=e,"comparisonFunc"),o=1/0):(r=(0,c.K)((t,e)=>t>=e,"comparisonFunc"),o=0),t.forEach(t=>{let a="TB"===Q||"BT"==Q?F.get(t)?.y:F.get(t)?.x;void 0!==a&&r(a,o)&&(e=t,o=a)}),e},"findClosestParent"),te=(0,c.K)(t=>{let e="",r=1/0;return t.forEach(t=>{let o=F.get(t).y;o<=r&&(e=t,r=o)}),e||void 0},"findClosestParentBT"),tr=(0,c.K)((t,e,r)=>{let o=r,a=r,i=[];t.forEach(t=>{let r=e.get(t);if(!r)throw Error(`Commit not found for key ${t}`);r.parents.length?a=Math.max(o=ta(r),a):i.push(r),ti(r,o)}),o=a,i.forEach(t=>{tn(t,o,r)}),t.forEach(t=>{let r=e.get(t);if(r?.parents.length){let t=te(r.parents);(o=F.get(t).y-40)<=a&&(a=o);let e=j.get(r.branch).pos,i=o-10;F.set(r.id,{x:e,y:i})}})},"setParallelBTPos"),to=(0,c.K)(t=>{let e=tt(t.parents.filter(t=>null!==t));if(!e)throw Error(`Closest parent not found for commit ${t.id}`);let r=F.get(e)?.y;if(void 0===r)throw Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),ta=(0,c.K)(t=>to(t)+40,"calculateCommitPosition"),ti=(0,c.K)((t,e)=>{let r=j.get(t.branch);if(!r)throw Error(`Branch not found for commit ${t.id}`);let o=r.pos,a=e+10;return F.set(t.id,{x:o,y:a}),{x:o,y:a}},"setCommitPosition"),tn=(0,c.K)((t,e,r)=>{let o=j.get(t.branch);if(!o)throw Error(`Branch not found for commit ${t.id}`);let a=o.pos;F.set(t.id,{x:a,y:e+r})},"setRootPosition"),ts=(0,c.K)((t,e,r,o,a,i)=>{let{theme:s}=(0,n.D7)(),c=_.has(s??""),d=z.has(s??""),l=Y.has(s??"");if(i===h.HIGHLIGHT)t.append("rect").attr("x",r.x-10+3*!!c).attr("y",r.y-10+3*!!c).attr("width",c?14:20).attr("height",c?14:20).attr("class",`commit ${e.id} commit-highlight${N(a,8,d)} ${o}-outer`),t.append("rect").attr("x",r.x-6+2*!!c).attr("y",r.y-6+2*!!c).attr("width",c?8:12).attr("height",c?8:12).attr("class",`commit ${e.id} commit${N(a,8,d)} ${o}-inner`);else if(i===h.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",c?7:10).attr("class",`commit ${e.id} ${o}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",c?2.5:2.75).attr("fill",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",c?2.5:2.75).attr("fill",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke",l?"#000000":"#fff").attr("class",`commit ${e.id} ${o}`);else{let n=t.append("circle");if(n.attr("cx",r.x),n.attr("cy",r.y),n.attr("r",c?7:10),n.attr("class",`commit ${e.id} commit${N(a,8,d)}`),i===h.MERGE){let i=t.append("circle");i.attr("cx",r.x),i.attr("cy",r.y),i.attr("r",c?5:6),i.attr("class",`commit ${o} ${e.id} commit${N(a,8,d)}`)}if(i===h.REVERSE){let i=t.append("path"),n=c?4:5;i.attr("d",`M ${r.x-n},${r.y-n}L${r.x+n},${r.y+n}M${r.x-n},${r.y+n}L${r.x+n},${r.y-n}`).attr("class",`commit ${o} ${e.id} commit${N(a,8,d)}`)}}},"drawCommitBullet"),tc=(0,c.K)((t,e,r,o,a)=>{if(e.type!==h.CHERRY_PICK&&(e.customId&&e.type===h.MERGE||e.type!==h.MERGE)&&a.showCommitLabel){let i=t.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",o).attr("y",r.y+25).attr("class","commit-label").text(e.id),c=s.node()?.getBBox();if(c&&(n.attr("x",r.posWithOffset-c.width/2-2).attr("y",r.y+13.5).attr("width",c.width+4).attr("height",c.height+4),"TB"===Q||"BT"===Q?(n.attr("x",r.x-(c.width+16+5)).attr("y",r.y-12),s.attr("x",r.x-(c.width+16)).attr("y",r.y+c.height-12)):s.attr("x",r.posWithOffset-c.width/2),a.rotateCommitLabel))if("TB"===Q||"BT"===Q)s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),n.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let t=-7.5-(c.width+10)/25*9.5,e=10+c.width/25*8.5;i.attr("transform","translate("+t+", "+e+") rotate(-45, "+o+", "+r.y+")")}}},"drawCommitLabel"),td=(0,c.K)((t,e,r,o)=>{if(e.tags.length>0){let a=0,i=0,n=0,s=[];for(let o of e.tags.reverse()){let e=t.insert("polygon"),c=t.append("circle"),d=t.append("text").attr("y",r.y-16-a).attr("class","tag-label").text(o),l=d.node()?.getBBox();if(!l)throw Error("Tag bbox not found");i=Math.max(i,l.width),n=Math.max(n,l.height),d.attr("x",r.posWithOffset-l.width/2),s.push({tag:d,hole:c,rect:e,yOffset:a}),a+=20}for(let{tag:t,hole:e,rect:a,yOffset:c}of s){let s=n/2,d=r.y-19.2-c;if(a.attr("class","tag-label-bkg").attr("points",`
- ${o-i/2-2},${d+2}
- ${o-i/2-2},${d-2}
- ${r.posWithOffset-i/2-4},${d-s-2}
- ${r.posWithOffset+i/2+4},${d-s-2}
- ${r.posWithOffset+i/2+4},${d+s+2}
- ${r.posWithOffset-i/2-4},${d+s+2}`),e.attr("cy",d).attr("cx",o-i/2+2).attr("r",1.5).attr("class","tag-hole"),"TB"===Q||"BT"===Q){let n=o+c;a.attr("class","tag-label-bkg").attr("points",`
- ${r.x},${n+2}
- ${r.x},${n-2}
- ${r.x+10},${n-s-2}
- ${r.x+10+i+4},${n-s-2}
- ${r.x+10+i+4},${n+s+2}
- ${r.x+10},${n+s+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+o+")"),e.attr("cx",r.x+2).attr("cy",n).attr("transform","translate(12,12) rotate(45, "+r.x+","+o+")"),t.attr("x",r.x+5).attr("y",n+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+o+")")}}}},"drawCommitTags"),tl=(0,c.K)(t=>{switch(t.customType??t.type){case h.NORMAL:return"commit-normal";case h.REVERSE:return"commit-reverse";case h.HIGHLIGHT:return"commit-highlight";case h.MERGE:return"commit-merge";case h.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),th=(0,c.K)((t,e,r,o)=>{let a={x:0,y:0};if(t.parents.length>0){let r=tt(t.parents);if(r){let i=o.get(r)??a;return"TB"===e?i.y+40:"BT"===e?(o.get(t.id)??a).y-40:i.x+40}}else if("TB"===e)return 30;else if("BT"===e)return(o.get(t.id)??a).y-40;return 0},"calculatePosition"),t$=(0,c.K)((t,e,r)=>{let o="BT"===Q&&r?e:e+10,a=j.get(t.branch)?.pos,i="TB"===Q||"BT"===Q?j.get(t.branch)?.pos:o;if(void 0===i||void 0===a)throw Error(`Position were undefined for commit ${t.id}`);let s=_.has((0,n.D7)().theme??"");return{x:i,y:"TB"===Q||"BT"===Q?o:a+(s?7:-2),posWithOffset:o}},"getCommitPosition"),tm=(0,c.K)((t,e,r,o)=>{let a=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),n=30*("TB"===Q||"BT"===Q),s=[...e.keys()],d=o.parallelCommits??!1,l=s.sort((0,c.K)((t,r)=>{let o=e.get(t)?.seq,a=e.get(r)?.seq;return void 0!==o&&void 0!==a?o-a:0},"sortKeys"));"BT"===Q&&(d&&tr(l,e,n),l=l.reverse()),l.forEach(t=>{let s=e.get(t);if(!s)throw Error(`Commit not found for key ${t}`);d&&(n=th(s,Q,n,F));let c=t$(s,n,d);if(r){let t=tl(s),e=s.customType??s.type,r=j.get(s.branch)?.index??0;ts(a,s,c,t,r,e),tc(i,s,c,n,o),td(i,s,c,n)}"TB"===Q||"BT"===Q?F.set(s.id,{x:c.x,y:c.posWithOffset}):F.set(s.id,{x:c.posWithOffset,y:c.y}),(n="BT"===Q&&d?n+40:n+40+10)>J&&(J=n)})},"drawCommits"),tg=(0,c.K)((t,e,r,o,a)=>{let i=("TB"===Q||"BT"===Q?r.xt.branch===i,"isOnBranchToGetCurve"),s=(0,c.K)(r=>r.seq>t.seq&&r.seqs(t)&&n(t))},"shouldRerouteArrow"),tp=(0,c.K)((t,e,r=0)=>{let o=t+Math.abs(t-e)/2;if(r>5)return o;if(V.every(t=>Math.abs(t-o)>=10))return V.push(o),o;let a=Math.abs(t-e);return tp(t,e-a/5,r+1)},"findLane"),ty=(0,c.K)((t,e,r,o)=>{let a,{theme:i}=(0,n.D7)(),s=z.has(i??""),c=F.get(e.id),d=F.get(r.id);if(void 0===c||void 0===d)throw Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let l=tg(e,r,c,d,o),$="",m="",g=0,p=0,y=j.get(r.branch)?.index;if(r.type===h.MERGE&&e.id!==r.parents[0]&&(y=j.get(e.branch)?.index),l){$="A 10 10, 0, 0, 0,",m="A 10 10, 0, 0, 1,",g=10,p=10;let t=c.yd.x&&($="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y-g} ${m} ${c.x-p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x+g} ${c.y} ${$} ${d.x} ${c.y+p} L ${d.x} ${d.y}`),c.x===d.x&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`)):"BT"===Q?(c.xd.x&&($="A 20 20, 0, 0, 0,",m="A 20 20, 0, 0, 1,",g=20,p=20,a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${$} ${c.x-p} ${d.y} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${d.x+g} ${c.y} ${m} ${d.x} ${c.y-p} L ${d.x} ${d.y}`),c.x===d.x&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`)):(c.yd.y&&(a=r.type===h.MERGE&&e.id!==r.parents[0]?`M ${c.x} ${c.y} L ${d.x-g} ${c.y} ${$} ${d.x} ${c.y-p} L ${d.x} ${d.y}`:`M ${c.x} ${c.y} L ${c.x} ${d.y+g} ${m} ${c.x+p} ${d.y} L ${d.x} ${d.y}`),c.y===d.y&&(a=`M ${c.x} ${c.y} L ${d.x} ${d.y}`));if(void 0===a)throw Error("Line definition not found");t.append("path").attr("d",a).attr("class","arrow arrow"+N(y,8,s))},"drawArrow"),tf=(0,c.K)((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(t=>{let o=e.get(t);o.parents&&o.parents.length>0&&o.parents.forEach(t=>{ty(r,e.get(t),o,e)})})},"drawArrows"),tx=(0,c.K)((t,e,r,o)=>{let{look:a,theme:i,themeVariables:s}=(0,n.D7)(),{dropShadow:c,THEME_COLOR_LIMIT:d}=s,l=_.has(i??""),h=z.has(i??""),$=t.append("g");e.forEach((t,e)=>{let i=N(e,l?d:8,h),n=j.get(t.name)?.pos;if(void 0===n)throw Error(`Position not found for branch ${t.name}`);let s="TB"===Q||"BT"===Q?n:l?n+6+1:n-2,m=$.append("line");m.attr("x1",0),m.attr("y1",s),m.attr("x2",J),m.attr("y2",s),m.attr("class","branch branch"+i),"TB"===Q?(m.attr("y1",30),m.attr("x1",n),m.attr("y2",J),m.attr("x2",n)):"BT"===Q&&(m.attr("y1",J),m.attr("x1",n),m.attr("y2",30),m.attr("x2",n)),V.push(s);let g=Z(t.name),p=$.insert("rect"),y=$.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+i);y.node().appendChild(g);let f=g.getBBox(),x=4*!l,u=16*!!l,b=12*!!l;"neo"===a&&p.attr("data-look","neo"),p.attr("class","branchLabelBkg label"+i).attr("style","neo"===a?`filter:${l?`url(#${o}-drop-shadow)`:c}`:"").attr("rx",x).attr("ry",x).attr("x",-f.width-4-30*(!0===r.rotateCommitLabel)).attr("y",-f.height/2+10).attr("width",f.width+18+u).attr("height",f.height+4+b),y.attr("transform","translate("+(-f.width-14-30*(!0===r.rotateCommitLabel)+u/2)+", "+(s-f.height/2-2)+")"),"TB"===Q?(p.attr("x",n-f.width/2-10).attr("y",0),y.attr("transform","translate("+(n-f.width/2-5)+", 0)"),l&&(p.attr("transform",`translate(${-u/2-3}, ${-b-10})`),y.attr("transform","translate("+(n-f.width/2-5)+", "+(-(2*b)+7)+")"))):"BT"===Q?(p.attr("x",n-f.width/2-10).attr("y",J),y.attr("transform","translate("+(n-f.width/2-5)+", "+J+")"),l&&(p.attr("transform",`translate(${-u/2-3}, ${b+10})`),y.attr("transform","translate("+(n-f.width/2-5)+", "+(J+2*b+4)+")"))):p.attr("transform","translate(-19, "+(s-12-b/2)+")")})},"drawBranches"),tu=(0,c.K)(function(t,e,r,o,a){return j.set(t,{pos:e,index:r}),e+=50+40*!!a+("TB"===Q||"BT"===Q?o.width/2:0)},"setBranchPosition"),tb=(0,c.K)(function(t,e,r,o){X(),s.R.debug("in gitgraph renderer",t+"\n","id:",e,r);let a=o.db;if(!a.getConfig)return void s.R.error("getConfig method is not available on db");let c=a.getConfig(),d=c.rotateCommitLabel??!1;U=a.getCommits();let h=a.getBranchesAsObjArray();Q=a.getDirection();let $=(0,l.Ltv)(`[id="${e}"]`),{look:m,theme:g,themeVariables:p}=(0,n.D7)(),{useGradient:y,gradientStart:f,gradientStop:x,filterColor:u}=p;if(y){let t=$.append("defs").append("linearGradient").attr("id",e+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");t.append("stop").attr("offset","0%").attr("stop-color",f).attr("stop-opacity",1),t.append("stop").attr("offset","100%").attr("stop-color",x).attr("stop-opacity",1)}"neo"===m&&_.has(g??"")&&$.append("defs").append("filter").attr("id",e+"-drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",u);let b=0;h.forEach((t,e)=>{let r=Z(t.name),o=$.append("g"),a=o.insert("g").attr("class","branchLabel"),i=a.insert("g").attr("class","label branch-label");i.node()?.appendChild(r);let n=r.getBBox();b=tu(t.name,b,e,n,d),i.remove(),a.remove(),o.remove()}),tm($,U,!1,c),c.showBranches&&tx($,h,c,e),tf($,U),tm($,U,!0,c),i._K.insertTitle($,"gitTitleText",c.titleTopMargin??0,a.getDiagramTitle()),(0,n.mj)(void 0,$,c.diagramPadding,c.useMaxWidth)},"draw"),tk=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),tB=new Set(["redux-color","redux-dark-color"]),tw=new Set(["neo","neo-dark"]),tE=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),tT=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),tC=(0,c.K)(t=>{let{svgId:e}=t,r="";if(t.useGradient&&e)for(let o=0;o{let{theme:e,themeVariables:r}=(0,n.zj)(),{borderColorArray:o}=r,a=tk.has(e);if(tw.has(e)){let e="";for(let r=0;r`${Array.from({length:t.THEME_COLOR_LIMIT},(t,e)=>e).map(e=>{let r=e%8;return`
- .branch-label${e} { fill: ${t["gitBranchLabel"+r]}; }
- .commit${e} { stroke: ${t["git"+r]}; fill: ${t["git"+r]}; }
- .commit-highlight${e} { stroke: ${t["gitInv"+r]}; fill: ${t["gitInv"+r]}; }
- .label${e} { fill: ${t["git"+r]}; }
- .arrow${e} { stroke: ${t["git"+r]}; }
- `}).join("\n")}`,"normalTheme"),tM={parser:q,db:P,renderer:{draw:tb},styles:(0,c.K)(t=>{let{theme:e}=(0,n.zj)(),r=tT.has(e);return`
- .commit-id,
- .commit-msg,
- .branch-label {
- fill: lightgrey;
- color: lightgrey;
- font-family: 'trebuchet ms', verdana, arial, sans-serif;
- font-family: var(--mermaid-font-family);
- }
-
- ${r?tL(t):tK(t)}
-
- .branch {
- stroke-width: ${t.strokeWidth};
- stroke: ${t.commitLineColor??t.lineColor};
- stroke-dasharray: ${r?"4 2":"2"};
- }
- .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${r?t.nodeBorder:t.commitLabelColor}; ${r?`font-weight:${t.noteFontWeight};`:""}}
- .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${r?"transparent":t.commitLabelBackground}; opacity: ${r?"":.5}; }
- .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}
- .tag-label-bkg { fill: ${r?t.mainBkg:t.tagLabelBackground}; stroke: ${r?t.nodeBorder:t.tagLabelBorder}; ${r?`filter:${t.dropShadow}`:""} }
- .tag-hole { fill: ${t.textColor}; }
-
- .commit-merge {
- stroke: ${r?t.mainBkg:t.primaryColor};
- fill: ${r?t.mainBkg:t.primaryColor};
- }
- .commit-reverse {
- stroke: ${r?t.mainBkg:t.primaryColor};
- fill: ${r?t.mainBkg:t.primaryColor};
- stroke-width: ${r?t.strokeWidth:3};
- }
- .commit-highlight-outer {
- }
- .commit-highlight-inner {
- stroke: ${r?t.mainBkg:t.primaryColor};
- fill: ${r?t.mainBkg:t.primaryColor};
- }
-
- .arrow {
- /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */
- stroke-width: ${tk.has(e)?t.strokeWidth:8};
- stroke-linecap: round;
- fill: none
- }
- .gitTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${t.textColor};
- }
-`},"getStyles")}},84492:(t,e,r)=>{function o(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}r.d(e,{S:()=>o}),(0,r(91158).K)(o,"populateCommonDb")}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1962.a81a752546d4f646.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1962.a81a752546d4f646.js
deleted file mode 100644
index cf68b7ca1..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/1962.a81a752546d4f646.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1962],{91962:(e,r,a)=>{a.d(r,{diagram:()=>m});var t=a(46597),l=a(84492);a(94191),a(69301);var n=a(98999),i=a(91158),s=a(89321),p=(0,s.lz)().Railroad.parser.LangiumParser,o=(0,i.K)(e=>{switch(e.$type){case"RailroadTerminalExpr":return{type:"terminal",value:e.value};case"RailroadNonTerminalExpr":return{type:"nonterminal",name:e.name};case"RailroadSpecialExpr":return{type:"special",text:e.text};case"RailroadSequenceExpr":{let r=e.elements.map(o);return 1===r.length?r[0]:{type:"sequence",elements:r}}case"RailroadChoiceExpr":{let r=e.alternatives.map(o);return 1===r.length?r[0]:{type:"choice",alternatives:r}}case"RailroadOptionalExpr":return{type:"optional",element:o(e.element)};case"RailroadOneOrMoreExpr":return{type:"repetition",element:o(e.element),min:1,max:1/0};case"RailroadZeroOrMoreExpr":return{type:"repetition",element:o(e.element),min:0,max:1/0};default:throw Error(`Unsupported railroad expression: ${e.$type}`)}},"transformExpression"),d=(0,i.K)(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),u=(0,i.K)(e=>{(0,l.S)(e,t.db),e.title&&t.db.setTitle(e.title),e.rules.map(e=>t.db.addRule(d(e)))},"populateDb"),m={parser:{parse:(0,i.K)(e=>{t.db.clear(),n.R.debug("[Railroad Parser] Starting Langium parse");let r=p.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new s.zg(r);let a=r.value;n.R.debug("[Railroad Parser] Parsed rules:",a.rules.length),u(a),n.R.debug("[Railroad Parser] Parse complete")},"parse"),parser:{yy:t.db}},db:t.db,renderer:t.U,styles:t.$}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2158.e9e9735d49fb2ef8.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2158.e9e9735d49fb2ef8.js
deleted file mode 100644
index 233132a5a..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2158.e9e9735d49fb2ef8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2158],{92158:(e,s,a)=>{a.d(s,{createWardleyServices:()=>c.J});var c=a(19977);a(9448)}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2328.8b6dabf1d8eacebf.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2328.8b6dabf1d8eacebf.js
deleted file mode 100644
index 1a47c3e0b..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2328.8b6dabf1d8eacebf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2328],{33332:(t,e,n)=>{n.d(e,{CP:()=>d,Ck:()=>b,HT:()=>y,PB:()=>p,aC:()=>u,lC:()=>o,m:()=>h,tk:()=>l});var a=n(69301),r=n(91158),i=n(76162),s=n(70668),l=(0,r.K)((t,e)=>{let n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),e.name&&n.attr("name",e.name),e.rx&&n.attr("rx",e.rx),e.ry&&n.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)n.attr(t,e.attrs[t]);return e.class&&n.attr("class",e.class),n},"drawRect"),o=(0,r.K)((t,e)=>{l(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),h=(0,r.K)((t,e)=>{let n=e.text.replace(a.H1," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),e.class&&r.attr("class",e.class);let i=r.append("tspan");return i.attr("x",e.x+2*e.textMargin),i.text(n),r},"drawText"),u=(0,r.K)((t,e,n,a)=>{let r=t.append("image");r.attr("x",e),r.attr("y",n);let s=(0,i.J)(a);r.attr("xlink:href",s)},"drawImage"),d=(0,r.K)((t,e,n,a)=>{let r=t.append("use");r.attr("x",e),r.attr("y",n);let s=(0,i.J)(a);r.attr("xlink:href",`#${s}`)},"drawEmbeddedImage"),p=(0,r.K)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),y=(0,r.K)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),b=(0,r.K)(()=>{let t=(0,s.Ltv)(".mermaidTooltip");return t.empty()&&(t=(0,s.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),t},"createTooltip")},52328:(t,e,n)=>{n.d(e,{diagram:()=>tq});var a,r=n(33332),i=n(69981);n(5663),n(82142),n(29278);var s=n(13892),l=n(69301),o=n(98999),h=n(91158),u=n(70668),d=function(){var t=(0,h.K)(function(t,e,n,a){for(n=n||{},a=t.length;a--;n[t[a]]=e);return n},"o"),e=[1,24],n=[1,25],a=[1,26],r=[1,27],i=[1,28],s=[1,63],l=[1,64],o=[1,65],u=[1,66],d=[1,67],p=[1,68],y=[1,69],b=[1,29],_=[1,30],f=[1,31],m=[1,32],g=[1,33],x=[1,34],E=[1,35],S=[1,36],T=[1,37],k=[1,38],C=[1,39],v=[1,40],O=[1,41],R=[1,42],w=[1,43],P=[1,44],D=[1,45],N=[1,46],K=[1,47],A=[1,48],L=[1,50],I=[1,51],M=[1,52],$=[1,53],B=[1,54],j=[1,55],Y=[1,56],U=[1,57],F=[1,58],z=[1,59],X=[1,60],q=[14,42],W=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],H=[1,82],V=[1,83],G=[1,84],Z=[1,85],J=[12,14,42],tt=[12,14,33,42],te=[12,14,33,42,76,77,79,80],tn=[12,33],ta=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],tr={trace:(0,h.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:(0,h.K)(function(t,e,n,a,r,i,s){var l=i.length-1;switch(r){case 3:a.setDirection("TB");break;case 4:a.setDirection("BT");break;case 5:a.setDirection("RL");break;case 6:a.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:a.setC4Type(i[l-3]);break;case 19:a.setTitle(i[l].substring(6)),this.$=i[l].substring(6);break;case 20:a.setAccDescription(i[l].substring(15)),this.$=i[l].substring(15);break;case 21:this.$=i[l].trim(),a.setTitle(this.$);break;case 22:case 23:this.$=i[l].trim(),a.setAccDescription(this.$);break;case 28:i[l].splice(2,0,"ENTERPRISE"),a.addPersonOrSystemBoundary(...i[l]),this.$=i[l];break;case 29:i[l].splice(2,0,"SYSTEM"),a.addPersonOrSystemBoundary(...i[l]),this.$=i[l];break;case 30:a.addPersonOrSystemBoundary(...i[l]),this.$=i[l];break;case 31:i[l].splice(2,0,"CONTAINER"),a.addContainerBoundary(...i[l]),this.$=i[l];break;case 32:a.addDeploymentNode("node",...i[l]),this.$=i[l];break;case 33:a.addDeploymentNode("nodeL",...i[l]),this.$=i[l];break;case 34:a.addDeploymentNode("nodeR",...i[l]),this.$=i[l];break;case 35:a.popBoundaryParseStack();break;case 39:a.addPersonOrSystem("person",...i[l]),this.$=i[l];break;case 40:a.addPersonOrSystem("external_person",...i[l]),this.$=i[l];break;case 41:a.addPersonOrSystem("system",...i[l]),this.$=i[l];break;case 42:a.addPersonOrSystem("system_db",...i[l]),this.$=i[l];break;case 43:a.addPersonOrSystem("system_queue",...i[l]),this.$=i[l];break;case 44:a.addPersonOrSystem("external_system",...i[l]),this.$=i[l];break;case 45:a.addPersonOrSystem("external_system_db",...i[l]),this.$=i[l];break;case 46:a.addPersonOrSystem("external_system_queue",...i[l]),this.$=i[l];break;case 47:a.addContainer("container",...i[l]),this.$=i[l];break;case 48:a.addContainer("container_db",...i[l]),this.$=i[l];break;case 49:a.addContainer("container_queue",...i[l]),this.$=i[l];break;case 50:a.addContainer("external_container",...i[l]),this.$=i[l];break;case 51:a.addContainer("external_container_db",...i[l]),this.$=i[l];break;case 52:a.addContainer("external_container_queue",...i[l]),this.$=i[l];break;case 53:a.addComponent("component",...i[l]),this.$=i[l];break;case 54:a.addComponent("component_db",...i[l]),this.$=i[l];break;case 55:a.addComponent("component_queue",...i[l]),this.$=i[l];break;case 56:a.addComponent("external_component",...i[l]),this.$=i[l];break;case 57:a.addComponent("external_component_db",...i[l]),this.$=i[l];break;case 58:a.addComponent("external_component_queue",...i[l]),this.$=i[l];break;case 60:a.addRel("rel",...i[l]),this.$=i[l];break;case 61:a.addRel("birel",...i[l]),this.$=i[l];break;case 62:a.addRel("rel_u",...i[l]),this.$=i[l];break;case 63:a.addRel("rel_d",...i[l]),this.$=i[l];break;case 64:a.addRel("rel_l",...i[l]),this.$=i[l];break;case 65:a.addRel("rel_r",...i[l]),this.$=i[l];break;case 66:a.addRel("rel_b",...i[l]),this.$=i[l];break;case 67:i[l].splice(0,1),a.addRel("rel",...i[l]),this.$=i[l];break;case 68:a.updateElStyle("update_el_style",...i[l]),this.$=i[l];break;case 69:a.updateRelStyle("update_rel_style",...i[l]),this.$=i[l];break;case 70:a.updateLayoutConfig("update_layout_config",...i[l]),this.$=i[l];break;case 71:this.$=[i[l]];break;case 72:i[l].unshift(i[l-1]),this.$=i[l];break;case 73:case 75:this.$=i[l].trim();break;case 74:let o={};o[i[l-1].trim()]=i[l].trim(),this.$=o;break;case 76:this.$=""}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:70,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:71,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:72,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{13:73,19:20,20:21,21:22,22:e,23:n,24:a,26:r,28:i,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{14:[1,74]},t(q,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:o,38:u,39:d,40:p,41:y,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X}),t(q,[2,14]),t(W,[2,16],{12:[1,76]}),t(q,[2,36],{12:[1,77]}),t(Q,[2,19]),t(Q,[2,20]),{25:[1,78]},{27:[1,79]},t(Q,[2,23]),{35:80,75:81,76:H,77:V,79:G,80:Z},{35:86,75:81,76:H,77:V,79:G,80:Z},{35:87,75:81,76:H,77:V,79:G,80:Z},{35:88,75:81,76:H,77:V,79:G,80:Z},{35:89,75:81,76:H,77:V,79:G,80:Z},{35:90,75:81,76:H,77:V,79:G,80:Z},{35:91,75:81,76:H,77:V,79:G,80:Z},{35:92,75:81,76:H,77:V,79:G,80:Z},{35:93,75:81,76:H,77:V,79:G,80:Z},{35:94,75:81,76:H,77:V,79:G,80:Z},{35:95,75:81,76:H,77:V,79:G,80:Z},{35:96,75:81,76:H,77:V,79:G,80:Z},{35:97,75:81,76:H,77:V,79:G,80:Z},{35:98,75:81,76:H,77:V,79:G,80:Z},{35:99,75:81,76:H,77:V,79:G,80:Z},{35:100,75:81,76:H,77:V,79:G,80:Z},{35:101,75:81,76:H,77:V,79:G,80:Z},{35:102,75:81,76:H,77:V,79:G,80:Z},{35:103,75:81,76:H,77:V,79:G,80:Z},{35:104,75:81,76:H,77:V,79:G,80:Z},t(J,[2,59]),{35:105,75:81,76:H,77:V,79:G,80:Z},{35:106,75:81,76:H,77:V,79:G,80:Z},{35:107,75:81,76:H,77:V,79:G,80:Z},{35:108,75:81,76:H,77:V,79:G,80:Z},{35:109,75:81,76:H,77:V,79:G,80:Z},{35:110,75:81,76:H,77:V,79:G,80:Z},{35:111,75:81,76:H,77:V,79:G,80:Z},{35:112,75:81,76:H,77:V,79:G,80:Z},{35:113,75:81,76:H,77:V,79:G,80:Z},{35:114,75:81,76:H,77:V,79:G,80:Z},{35:115,75:81,76:H,77:V,79:G,80:Z},{20:116,29:49,30:61,32:62,34:s,36:l,37:o,38:u,39:d,40:p,41:y,43:23,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X},{12:[1,118],33:[1,117]},{35:119,75:81,76:H,77:V,79:G,80:Z},{35:120,75:81,76:H,77:V,79:G,80:Z},{35:121,75:81,76:H,77:V,79:G,80:Z},{35:122,75:81,76:H,77:V,79:G,80:Z},{35:123,75:81,76:H,77:V,79:G,80:Z},{35:124,75:81,76:H,77:V,79:G,80:Z},{35:125,75:81,76:H,77:V,79:G,80:Z},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(q,[2,15]),t(W,[2,17],{21:22,19:130,22:e,23:n,24:a,26:r,28:i}),t(q,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:n,24:a,26:r,28:i,34:s,36:l,37:o,38:u,39:d,40:p,41:y,44:b,45:_,46:f,47:m,48:g,49:x,50:E,51:S,52:T,53:k,54:C,55:v,56:O,57:R,58:w,59:P,60:D,61:N,62:K,63:A,64:L,65:I,66:M,67:$,68:B,69:j,70:Y,71:U,72:F,73:z,74:X}),t(Q,[2,21]),t(Q,[2,22]),t(J,[2,39]),t(tt,[2,71],{75:81,35:132,76:H,77:V,79:G,80:Z}),t(te,[2,73]),{78:[1,133]},t(te,[2,75]),t(te,[2,76]),t(J,[2,40]),t(J,[2,41]),t(J,[2,42]),t(J,[2,43]),t(J,[2,44]),t(J,[2,45]),t(J,[2,46]),t(J,[2,47]),t(J,[2,48]),t(J,[2,49]),t(J,[2,50]),t(J,[2,51]),t(J,[2,52]),t(J,[2,53]),t(J,[2,54]),t(J,[2,55]),t(J,[2,56]),t(J,[2,57]),t(J,[2,58]),t(J,[2,60]),t(J,[2,61]),t(J,[2,62]),t(J,[2,63]),t(J,[2,64]),t(J,[2,65]),t(J,[2,66]),t(J,[2,67]),t(J,[2,68]),t(J,[2,69]),t(J,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(tn,[2,28]),t(tn,[2,29]),t(tn,[2,30]),t(tn,[2,31]),t(tn,[2,32]),t(tn,[2,33]),t(tn,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(W,[2,18]),t(q,[2,38]),t(tt,[2,72]),t(te,[2,74]),t(J,[2,24]),t(J,[2,35]),t(ta,[2,25]),t(ta,[2,26],{12:[1,138]}),t(ta,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:(0,h.K)(function(t,e){if(e.recoverable)this.trace(t);else{var n=Error(t);throw n.hash=e,n}},"parseError"),parse:(0,h.K)(function(t){var e=this,n=[0],a=[],r=[null],i=[],s=this.table,l="",o=0,u=0,d=0,p=i.slice.call(arguments,1),y=Object.create(this.lexer),b={};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(b[_]=this.yy[_]);y.setInput(t,b),b.lexer=y,b.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;i.push(f);var m=y.options&&y.options.ranges;function g(){var t;return"number"!=typeof(t=a.pop()||y.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof b.parseError?this.parseError=b.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,h.K)(function(t){n.length=n.length-2*t,r.length=r.length-t,i.length=i.length-t},"popStack"),(0,h.K)(g,"lex");for(var x,E,S,T,k,C,v,O,R,w={};;){if(S=n[n.length-1],this.defaultActions[S]?T=this.defaultActions[S]:(null==x&&(x=g()),T=s[S]&&s[S][x]),void 0===T||!T.length||!T[0]){var P="";for(C in R=[],s[S])this.terminals_[C]&&C>2&&R.push("'"+this.terminals_[C]+"'");P=y.showPosition?"Parse error on line "+(o+1)+":\n"+y.showPosition()+"\nExpecting "+R.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==x?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(P,{text:y.match,token:this.terminals_[x]||x,line:y.yylineno,loc:f,expected:R})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+S+", token: "+x);switch(T[0]){case 1:n.push(x),r.push(y.yytext),i.push(y.yylloc),n.push(T[1]),x=null,E?(x=E,E=null):(u=y.yyleng,l=y.yytext,o=y.yylineno,f=y.yylloc,d>0&&d--);break;case 2:if(v=this.productions_[T[1]][1],w.$=r[r.length-v],w._$={first_line:i[i.length-(v||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(v||1)].first_column,last_column:i[i.length-1].last_column},m&&(w._$.range=[i[i.length-(v||1)].range[0],i[i.length-1].range[1]]),void 0!==(k=this.performAction.apply(w,[l,u,o,b,T[1],r,i].concat(p))))return k;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),i=i.slice(0,-1*v)),n.push(this.productions_[T[1]][0]),r.push(w.$),i.push(w._$),O=s[n[n.length-2]][n[n.length-1]],n.push(O);break;case 3:return!0}}return!0},"parse")};function ti(){this.yy={}}return tr.lexer={EOF:1,parseError:(0,h.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,h.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,h.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,h.K)(function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===a.length?this.yylloc.first_column:0)+a[a.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,h.K)(function(){return this._more=!0,this},"more"),reject:(0,h.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,h.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,h.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,h.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,h.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,h.K)(function(t,e){var n,a,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var i in r)this[i]=r[i];return!1},"test_match"),next:(0,h.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,n,a,r=this._currentRules(),i=0;ie[0].length)){if(e=n,a=i,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,r[i])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[a]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,h.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,h.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,h.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,h.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,h.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,h.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,h.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,h.K)(function(t,e,n,a){switch(n){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 73:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:case 16:case 70:break;case 14:c;break;case 15:return 12;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:case 53:return this.begin("rel_u"),66;case 54:case 55:return this.begin("rel_d"),67;case 56:case 57:return this.begin("rel_l"),68;case 58:case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:case 79:this.popState(),this.popState();break;case 69:case 71:return 80;case 72:this.begin("string");break;case 74:case 80:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[65,66,67,68],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}},(0,h.K)(ti,"Parser"),ti.prototype=tr,tr.Parser=ti,new ti}();d.parser=d;var p=(0,h.K)(t=>(0,l.D7)()[t],"getRequiredConfig"),y=(0,h.K)((t,e)=>{for(let[n,a]of Object.entries(e))if(void 0!==a)if("object"==typeof a){let[e,n]=Object.entries(a)[0];t[e]=n}else t[n]=a},"assignAttributes"),b=(0,h.K)(()=>({alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}),"createGlobalBoundary"),_=[],f=[""],m="global",g="",x=[b()],E=[],S="",T=!1,k=4,C=2,v=(0,h.K)(function(){return a},"getC4Type"),O=(0,h.K)(function(t){a=(0,l.jZ)(t,(0,l.D7)())},"setC4Type"),R=(0,h.K)(function(t,e,n,a,r,i,s,l,o){if(null==t||null==e||null==n||null==a)return;let h={},u=E.find(t=>t.from===e&&t.to===n);if(u?h=u:E.push(h),h.type=t,h.from=e,h.to=n,h.label={text:a},null==r)h.techn={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];h[t]={text:e}}else h.techn={text:r};if(null==i)h.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];h[t]={text:e}}else h.descr={text:i};y(h,{sprite:s,tags:l,link:o}),h.wrap=V()},"addRel"),w=(0,h.K)(function(t,e,n,a,r,i,s){if(null===e||null===n)return;let l={},o=_.find(t=>t.alias===e);if(o&&e===o.alias?l=o:(l.alias=e,_.push(l)),null==n?l.label={text:""}:l.label={text:n},null==a)l.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.descr={text:a};y(l,{sprite:r,tags:i,link:s}),l.typeC4Shape={text:t},l.parentBoundary=m,l.wrap=V()},"addPersonOrSystem"),P=(0,h.K)(function(t,e,n,a,r,i,s,l){if(null===e||null===n)return;let o={},h=_.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,_.push(o)),null==n?o.label={text:""}:o.label={text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==r)o.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]={text:e}}else o.descr={text:r};y(o,{sprite:i,tags:s,link:l}),o.wrap=V(),o.typeC4Shape={text:t},o.parentBoundary=m},"addContainer"),D=(0,h.K)(function(t,e,n,a,r,i,s,l){if(null===e||null===n)return;let o={},h=_.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,_.push(o)),null==n?o.label={text:""}:o.label={text:n},null==a)o.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.techn={text:a};if(null==r)o.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]={text:e}}else o.descr={text:r};y(o,{sprite:i,tags:s,link:l}),o.wrap=V(),o.typeC4Shape={text:t},o.parentBoundary=m},"addComponent"),N=(0,h.K)(function(t,e,n,a,r){if(null===t||null===e)return;let i={},s=x.find(e=>e.alias===t);if(s&&t===s.alias?i=s:(i.alias=t,x.push(i)),null==e?i.label={text:""}:i.label={text:e},null==n)i.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];i[t]={text:e}}else i.type={text:n};y(i,{tags:a,link:r}),i.parentBoundary=m,i.wrap=V(),g=m,m=t,f.push(g)},"addPersonOrSystemBoundary"),K=(0,h.K)(function(t,e,n,a,r){if(null===t||null===e)return;let i={},s=x.find(e=>e.alias===t);if(s&&t===s.alias?i=s:(i.alias=t,x.push(i)),null==e?i.label={text:""}:i.label={text:e},null==n)i.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];i[t]={text:e}}else i.type={text:n};y(i,{tags:a,link:r}),i.parentBoundary=m,i.wrap=V(),g=m,m=t,f.push(g)},"addContainerBoundary"),A=(0,h.K)(function(t,e,n,a,r,i,s,l){if(null===e||null===n)return;let o={},h=x.find(t=>t.alias===e);if(h&&e===h.alias?o=h:(o.alias=e,x.push(o)),null==n?o.label={text:""}:o.label={text:n},null==a)o.type={text:"node"};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];o[t]={text:e}}else o.type={text:a};if(null==r)o.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];o[t]={text:e}}else o.descr={text:r};y(o,{tags:s,link:l}),o.nodeType=t,o.parentBoundary=m,o.wrap=V(),g=m,m=e,f.push(g)},"addDeploymentNode"),L=(0,h.K)(function(){m=g,f.pop(),g=f.pop(),f.push(g)},"popBoundaryParseStack"),I=(0,h.K)(function(t,e,n,a,r,i,s,l,o,h,u){let d=_.find(t=>t.alias===e);if(void 0!==d||void 0!==(d=x.find(t=>t.alias===e))){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.fontColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.borderColor=r;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.shadowing=i;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.shape=s;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.sprite=l;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.techn=o;if(null!=h)if("object"==typeof h){let[t,e]=Object.entries(h)[0];d[t]=e}else d.legendText=h;if(null!=u)if("object"==typeof u){let[t,e]=Object.entries(u)[0];d[t]=e}else d.legendSprite=u}},"updateElStyle"),M=(0,h.K)(function(t,e,n,a,r,i,s){let l=E.find(t=>t.from===e&&t.to===n);if(void 0!==l){if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]=e}else l.textColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]=e}else l.lineColor=r;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];l[t]=parseInt(e)}else l.offsetX=parseInt(i);if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=parseInt(e)}else l.offsetY=parseInt(s)}},"updateRelStyle"),$=(0,h.K)(function(t,e,n){let a=k,r=C;a="object"==typeof e?parseInt(Object.values(e)[0]):parseInt(e),r="object"==typeof n?parseInt(Object.values(n)[0]):parseInt(n),a>=1&&(k=a),r>=1&&(C=r)},"updateLayoutConfig"),B=(0,h.K)(function(){return k},"getC4ShapeInRow"),j=(0,h.K)(function(){return C},"getC4BoundaryInRow"),Y=(0,h.K)(function(){return m},"getCurrentBoundaryParse"),U=(0,h.K)(function(){return g},"getParentBoundaryParse"),F=(0,h.K)(function(t){return null==t?_:_.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),z=(0,h.K)(function(t){return _.find(e=>e.alias===t)},"getC4Shape"),X=(0,h.K)(function(t){return Object.keys(F(t))},"getC4ShapeKeys"),q=(0,h.K)(function(t){return null==t?x:x.filter(e=>e.parentBoundary===t)},"getBoundaries"),W=(0,h.K)(function(){return E},"getRels"),Q=(0,h.K)(function(){return S},"getTitle"),H=(0,h.K)(function(t){T=t},"setWrap"),V=(0,h.K)(function(){return T},"autoWrap"),G=(0,h.K)(function(){_=[],x=[b()],g="",m="global",f=[""],E=[],f=[""],S="",T=!1,k=4,C=2},"clear"),Z=(0,h.K)(function(t){S=(0,l.jZ)(t,(0,l.D7)())},"setTitle"),J={addPersonOrSystem:w,addPersonOrSystemBoundary:N,addContainer:P,addContainerBoundary:K,addComponent:D,addDeploymentNode:A,popBoundaryParseStack:L,addRel:R,updateElStyle:I,updateRelStyle:M,updateLayoutConfig:$,autoWrap:V,setWrap:H,getC4ShapeArray:F,getC4Shape:z,getC4ShapeKeys:X,getBoundaries:q,getBoundarys:q,getCurrentBoundaryParse:Y,getParentBoundaryParse:U,getRels:W,getTitle:Q,getC4Type:v,getC4ShapeInRow:B,getC4BoundaryInRow:j,setAccTitle:l.SV,getAccTitle:l.iN,getAccDescription:l.m7,setAccDescription:l.EI,getConfig:(0,h.K)(()=>p("c4"),"getConfig"),clear:G,LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:Z,setC4Type:O},tt=(0,h.K)(function(t,e){return(0,r.tk)(t,e)},"drawRect"),te=(0,h.K)((t,e,n,a)=>{let r=t.append("g"),i=0;for(let t of e){let e=t.textColor?t.textColor:"#444444",s=t.lineColor?t.lineColor:"#444444",l=t.offsetX?parseInt(String(t.offsetX)):0,o=t.offsetY?parseInt(String(t.offsetY)):0;if(0===i){let e=r.append("line");e.attr("x1",t.startPoint.x),e.attr("y1",t.startPoint.y),e.attr("x2",t.endPoint.x),e.attr("y2",t.endPoint.y),e.attr("stroke-width","1"),e.attr("stroke",s),e.style("fill","none"),"rel_b"!==t.type&&e.attr("marker-end","url(#"+a+"-arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#"+a+"-arrowend)"),i=-1}else{let e=r.append("path");e.attr("fill","none").attr("stroke-width","1").attr("stroke",s).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",t.startPoint.x).replaceAll("starty",t.startPoint.y).replaceAll("controlx",t.startPoint.x+(t.endPoint.x-t.startPoint.x)/2-(t.endPoint.x-t.startPoint.x)/4).replaceAll("controly",t.startPoint.y+(t.endPoint.y-t.startPoint.y)/2).replaceAll("stopx",t.endPoint.x).replaceAll("stopy",t.endPoint.y)),"rel_b"!==t.type&&e.attr("marker-end","url(#"+a+"-arrowhead)"),("birel"===t.type||"rel_b"===t.type)&&e.attr("marker-start","url(#"+a+"-arrowend)")}let h=t.label.width,u=n.messageFont();th(n)(t.label.text,r,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+l,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+o,h,t.label.height,{fill:e},u),t.techn&&""!==t.techn.text&&(u=n.messageFont(),th(n)("["+t.techn.text+"]",r,Math.min(t.startPoint.x,t.endPoint.x)+Math.abs(t.endPoint.x-t.startPoint.x)/2+l,Math.min(t.startPoint.y,t.endPoint.y)+Math.abs(t.endPoint.y-t.startPoint.y)/2+n.messageFontSize+5+o,Math.max(h,t.techn.width),t.techn.height,{fill:e,"font-style":"italic"},u))}},"drawRels"),tn=(0,h.K)(function(t,e,n){let a=t.append("g"),r=e.bgColor?e.bgColor:"none",i=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1}),tt(a,{x:e.x,y:e.y,fill:r,stroke:i,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l});let o=n.boundaryFont();o.fontWeight="bold",o.fontSize=o.fontSize+2,o.fontColor=s,th(n)(e.label.text,a,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},o),e.type&&""!==e.type.text&&((o=n.boundaryFont()).fontColor=s,th(n)(e.type.text,a,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},o)),e.descr&&""!==e.descr.text&&((o=n.boundaryFont()).fontSize=o.fontSize-2,o.fontColor=s,th(n)(e.descr.text,a,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},o))},"drawBoundary"),ta=(0,h.K)(function(t,e){t.append("defs").append("symbol").attr("id",e+"-database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("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")},"insertDatabaseIcon"),tr=(0,h.K)(function(t,e){t.append("defs").append("symbol").attr("id",e+"-computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("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")},"insertComputerIcon"),ti=(0,h.K)(function(t,e){t.append("defs").append("symbol").attr("id",e+"-clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("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")},"insertClockIcon"),ts=(0,h.K)(function(t,e){t.append("defs").append("marker").attr("id",e+"-arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),tl=(0,h.K)(function(t,e){t.append("defs").append("marker").attr("id",e+"-arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),to=(0,h.K)(function(t,e){t.append("defs").append("marker").attr("id",e+"-filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),tc=(0,h.K)(function(t,e){let n=t.append("defs").append("marker").attr("id",e+"-crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);n.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),n.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),th=function(){function t(t,e,n,r,i,s,l){a(e.append("text").attr("x",n+i/2).attr("y",r+s/2+5).style("text-anchor","middle").text(t),l)}function e(t,e,n,r,i,s,o,h){let{fontSize:u,fontFamily:d,fontWeight:p}=h,y=t.split(l.Y2.lineBreakRegex);for(let t=0;t{if("sandbox"===e){let e=(0,u.Ltv)("#i"+t),n=e.node()?.contentDocument;if(!n)throw Error(`Sandbox iframe #i${t} is missing its content document`);return{root:(0,u.Ltv)(n.body),doc:n}}return{root:(0,u.Ltv)("body"),doc:document}},"getDiagramRoot"),tp=new Set(["system_queue","external_system_queue","container_queue","external_container_queue","component_queue","external_component_queue"]),ty=new Set(["system_db","external_system_db","container_db","external_container_db","component_db","external_component_db"]),tb={person:"person",box:"rounded",rounded:"rounded",cylinder:"cylinder",database:"cylinder",db:"cylinder",queue:"h-cyl",pipe:"h-cyl",component:"fr-rect"},t_=(0,h.K)(t=>t?tb[t.toLowerCase()]:void 0,"keywordShape"),tf=(0,h.K)(t=>{let e=t_(t.shape)??t_(t.sprite);if(e)return e;if(t.tags)for(let e of t.tags.split(",")){let t=t_(e.trim());if(t)return t}let n=t.typeC4Shape.text;return"person"===n||"external_person"===n?"person":ty.has(n)?"cylinder":tp.has(n)?"h-cyl":"rounded"},"resolveNodeShape"),tm={person:"Person",system:"Software System",container:"Container",component:"Component"},tg=(0,h.K)(t=>{let e=t.replace(/^external_/,"").replace(/_(db|queue)$/,"");return tm[e]??e.replace(/_/g," ")},"stereotypeLabel"),tx=(0,h.K)(t=>t.startsWith("external_"),"isExternal"),tE=(0,h.K)(t=>{let e=tg(t.typeC4Shape.text);return t.techn?.text?`[${e}: ${t.techn.text}]`:`[${e}]`},"stereotypeText"),tS=["person","system","system_db","system_queue","container","container_db","container_queue","component","component_db","component_queue"].flatMap(t=>[t,`external_${t}`]),tT=new Set(tS),tk=(0,h.K)(t=>tT.has(t),"isC4ElementType"),tC=(0,h.K)((t,e)=>{let n=t.typeC4Shape.text,a=t.bgColor??(tk(n)&&e[`${n}_bg_color`]),r=t.borderColor??(tk(n)&&e[`${n}_border_color`]),i=[];return a&&i.push(`fill:${a}`),r&&i.push(`stroke:${r}`),i.push(`color:${t.fontColor??"#FFFFFF"}`),i},"elementCssStyles"),tv=(0,h.K)((t,e,n,a,r)=>{let i=t.typeC4Shape.text,s=["c4-shape",`c4-${i}`];tx(i)&&s.push("c4-external");let l=tf(t),o=tC(t,e);return("rounded"===l||"fr-rect"===l)&&o.push("rx:12px","ry:12px"),{id:t.alias,label:t.label.text,stereotype:tE(t),description:t.descr?.text?[t.descr.text]:void 0,labelType:"string",isGroup:!1,shape:l,cssClasses:s.join(" "),cssStyles:o,padding:n,look:a,useHtmlLabels:!1,width:r}},"buildC4Node"),tO=0,tR=0,tw=4,tP=2;d.yy=J;var tD={},tN=class{static{(0,h.K)(this,"Bounds")}constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,tK(t.db.getConfig())}setData(t,e,n,a){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=a}updateVal(t,e,n,a){void 0===t[e]?t[e]=n:t[e]=a(n,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.stopx,n=this.data.widthLimit,a=this.nextData.startx===this.nextData.stopx?e+t.margin:e+2*t.margin,r=a+t.width,i=this.nextData.starty+2*t.margin,s=i+t.height;(a>=n||r>=n||this.nextData.cnt>tw)&&(a=this.nextData.startx+t.margin+tD.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=r=a+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=s=i+t.height,this.nextData.cnt=1),t.x=a,t.y=i,this.updateVal(this.data,"startx",a,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",r,Math.max),this.updateVal(this.data,"stopy",s,Math.max),this.updateVal(this.nextData,"startx",a,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",r,Math.max),this.updateVal(this.nextData,"stopy",s,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},tK(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},tK=(0,h.K)(function(t){(0,l.hH)(tD,t),t?.fontFamily&&(tD.personFontFamily=tD.systemFontFamily=tD.messageFontFamily=t.fontFamily),t?.fontSize&&(tD.personFontSize=tD.systemFontSize=tD.messageFontSize=t.fontSize),t?.fontWeight&&(tD.personFontWeight=tD.systemFontWeight=tD.messageFontWeight=t.fontWeight)},"setConf"),tA=(0,h.K)(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),tL=(0,h.K)(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");function tI(t,e,n,a,r){let i=e[t];if(!i.width)if(n)i.text=(0,s.bH)(i.text,r,a),i.textLines=i.text.split(l.Y2.lineBreakRegex).length,i.width=r,i.height=(0,s.ru)(i.text,a);else{let t=i.text.split(l.Y2.lineBreakRegex);i.textLines=t.length;let e=0;for(let n of(i.height=0,i.width=0,t))i.width=Math.max((0,s.Un)(n,a),i.width),e=(0,s.ru)(n,a),i.height=i.height+e}return i}(0,h.K)(tI,"calcC4ShapeTextWH");var tM=(0,h.K)(function(t,e,n){let a=n.data.startx,r=n.data.starty;e.x=a,e.y=r,e.width=n.data.stopx-a,e.height=n.data.stopy-r,e.label.y=tD.c4ShapeMargin-35;let i=e.wrap&&tD.wrap,l=tA(tD);l.fontSize=l.fontSize+2,l.fontWeight="bold";let o=(0,s.Un)(e.label.text,l);tI("label",e,i,l,o),tu.drawBoundary(t,e,tD)},"drawBoundary"),t$=(0,h.K)(async function(t,e,n,a){let r=(0,l.D7)(),s=r.look??"classic",o={config:r},u=e.attr("id")??"",d=a.map(t=>n[Number(t)]),p=(0,h.K)(t=>{let e=t.shape?i.nq[t.shape]:void 0;if(!e)throw Error(`C4: no shape handler for "${t.shape}"`);return e},"shapeHandlerFor");for(let n of(await Promise.all(d.map(async t=>{let n=tv(t,tD,tD.c4ShapePadding,s,tD.width);n.domId=`${u}-${n.id}`;let a=await p(n)(e,n,o);t.width=n.width??tD.width,t.height=n.height??tD.height,t.margin=tD.c4ShapeMargin,a.remove()})),d))t.insert(n);await Promise.all(d.map(async t=>{let n=tv(t,tD,tD.c4ShapePadding,s,tD.width);n.domId=`${u}-${n.id}`,n.x=t.x+t.width/2,n.y=t.y+t.height/2;let a=e.append("g").attr("transform",`translate(${t.x+t.width/2}, ${t.y+t.height/2})`);await p(n)(a,n,o),t.intersect=n.intersect})),t.bumpLastMargin(tD.c4ShapeMargin)},"drawC4ShapeArray"),tB=class{static{(0,h.K)(this,"Point")}constructor(t,e){this.x=t,this.y=e}},tj=(0,h.K)(function(t,e){if(!t.intersect)throw Error(`C4 shape "${t.alias}" has no intersect function. Please report this to https://github.com/mermaid-js/mermaid/issues`);let{x:n,y:a}=t.intersect(e);return new tB(n,a)},"getIntersectPoint"),tY=(0,h.K)(function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let a=tj(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:a,endPoint:tj(e,n)}},"getIntersectPoints"),tU=(0,h.K)(function(t,e,n,a,r){let i=a.db.getC4Type(),l=0;for(let t of e){l+=1;let e=t.wrap&&tD.wrap,a=tL(tD);"C4Dynamic"===i&&(t.label.text=l+": "+t.label.text);let r=(0,s.Un)(t.label.text,a);tI("label",t,e,a,r),t.techn&&""!==t.techn.text&&(r=(0,s.Un)(t.techn.text,a),tI("techn",t,e,a,r)),t.descr&&""!==t.descr.text&&(r=(0,s.Un)(t.descr.text,a),tI("descr",t,e,a,r));let o=n(t.from),h=n(t.to);if(!o||!h)throw Error(`C4 rel "${t.from}" -> "${t.to}" references an unknown shape`);let u=tY(o,h);if(!u.startPoint||!u.endPoint)throw Error(`Could not calculate intersection points for rel "${t.from}" -> "${t.to}"`);t.startPoint=u.startPoint,t.endPoint=u.endPoint}tu.drawRels(t,e,tD,r)},"drawRels");async function tF(t,e,n,a,r){let i=r.db,s=new tN(r);for(let[l,o]of(s.data.widthLimit=n.data.widthLimit/Math.min(tP,a.length),a.entries())){let a=0;o.image={width:0,height:0,Y:0},o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=a,a=o.image.Y+o.image.height);let h=o.wrap&&tD.wrap,u=tA(tD);u.fontSize=u.fontSize+2,u.fontWeight="bold";let d=tI("label",o,h,u,s.data.widthLimit);if(d.Y=a+8,a=d.Y+d.height,o.type&&""!==o.type.text){o.type.text="["+o.type.text+"]";let t=tI("type",o,h,tA(tD),s.data.widthLimit);t.Y=a+5,a=t.Y+t.height}if(o.descr&&""!==o.descr.text){let t=tA(tD);t.fontSize=t.fontSize-2;let e=tI("descr",o,h,t,s.data.widthLimit);e.Y=a+20,a=e.Y+e.height}if(0==l||l%tP==0){let t=n.data.startx+tD.diagramMarginX,e=n.data.stopy+tD.diagramMarginY+a;s.setData(t,t,e,e)}else{let t=s.data.stopx!==s.data.startx?s.data.stopx+tD.diagramMarginX:s.data.startx,e=s.data.starty;s.setData(t,t,e,e)}s.name=o.alias;let p=i.getC4ShapeArray(o.alias),y=i.getC4ShapeKeys(o.alias);y.length>0&&await t$(s,t,p,y),e=o.alias;let b=i.getBoundaries(e);b.length>0&&await tF(t,e,s,b,r),"global"!==o.alias&&tM(t,o,s),n.data.stopy=Math.max(s.data.stopy+tD.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(s.data.stopx+tD.c4ShapeMargin,n.data.stopx),tO=Math.max(tO,n.data.stopx),tR=Math.max(tR,n.data.stopy)}}(0,h.K)(tF,"drawInsideBoundary");var tz={drawPersonOrSystemArray:t$,drawBoundary:tM,setConf:tK,draw:(0,h.K)(async function(t,e,n,a){tD=p("c4");let{root:r}=td(e,(0,l.D7)().securityLevel),i=a.db;i.setWrap(tD.wrap),tw=i.getC4ShapeInRow(),tP=i.getC4BoundaryInRow(),o.R.debug(`C:${JSON.stringify(tD,null,2)}`);let s=r.select(`[id="${e}"]`);tu.insertComputerIcon(s,e),tu.insertDatabaseIcon(s,e),tu.insertClockIcon(s,e);let h=new tN(a);h.setData(tD.diagramMarginX,tD.diagramMarginX,tD.diagramMarginY,tD.diagramMarginY),h.data.widthLimit=screen.availWidth,tO=tD.diagramMarginX,tR=tD.diagramMarginY;let u=i.getTitle(),d=i.getBoundaries("");await tF(s,"",h,d,a),tu.insertArrowHead(s,e),tu.insertArrowEnd(s,e),tu.insertArrowCrossHead(s,e),tu.insertArrowFilledHead(s,e),tU(s,i.getRels(),i.getC4Shape,a,e),h.data.stopx=tO,h.data.stopy=tR;let y=h.data,b=y.startx,_=y.starty,f=tR-_+2*tD.diagramMarginY,m=tO-b,g=m+2*tD.diagramMarginX;u&&s.append("text").text(u).attr("x",m/2-4*tD.diagramMarginX).attr("y",_+tD.diagramMarginY),(0,l.a$)(s,f,g,tD.useMaxWidth);let x=60*!!u;s.attr("viewBox",b-tD.diagramMarginX+" -"+(tD.diagramMarginY+x)+" "+g+" "+(f+x)),o.R.debug("models:",y)},"draw")},tX=(0,h.K)(()=>{let t=(0,l.D7)().c4??{},e=new CSSStyleSheet;for(let n of tS){let a=e.cssRules[e.insertRule(`.c4-shape.c4-${n} .label {}`,e.cssRules.length)],r=t[`${n}FontFamily`],i=t[`${n}FontSize`],s=t[`${n}FontWeight`];r&&a.style.setProperty("font-family",r),i&&a.style.setProperty("font-size","number"==typeof i?`${i}px`:i),s&&a.style.setProperty("font-weight",String(s))}return[...e.cssRules].filter(t=>t.style.length>0).map(t=>` ${t.cssText}`).join("\n")},"elementFontStyles"),tq={parser:d,db:J,renderer:tz,styles:(0,h.K)(t=>`.person {
- stroke: ${t.personBorder};
- fill: ${t.personBkg};
- }
-${tX()}
-
- /* The element font colour is set inline per element (default white); the
- label text takes it via currentColor. */
- .c4-shape .label,
- .c4-shape .label text {
- color: inherit;
- fill: currentColor;
- }
- /* Structurizr typography: bold name, smaller stereotype/type and description lines. */
- .c4-shape .label .c4-name {
- font-weight: bold;
- }
- .c4-shape .label .c4-type {
- font-size: 0.75em;
- }
- .c4-shape .label .c4-descr {
- font-size: 0.82em;
- }
- .c4-shape .basic,
- .c4-shape rect,
- .c4-shape path,
- .c4-shape circle,
- .c4-shape ellipse,
- .c4-shape line {
- stroke-width: 2px;
- }
-`,"getStyles"),init:(0,h.K)(({c4:t,wrap:e})=>{tz.setConf(t),J.setWrap(e)},"init")}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2440.ee94f3cc365fddfe.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2440.ee94f3cc365fddfe.js
deleted file mode 100644
index f92f03bcd..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2440.ee94f3cc365fddfe.js
+++ /dev/null
@@ -1,172 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2440],{3392:(t,e,s)=>{s.d(e,{o:()=>i});var i=(0,s(91158).K)(()=>`
- /* Font Awesome icon styling - consolidated */
- .label-icon {
- display: inline-block;
- height: 1em;
- overflow: visible;
- vertical-align: -0.125em;
- }
-
- .node .label-icon path {
- fill: currentColor;
- stroke: revert;
- stroke-width: revert;
- }
-`,"getIconStyles")},24002:(t,e,s)=>{s.d(e,{P:()=>n});var i=s(69301),r=s(98999),a=s(91158),n=(0,a.K)((t,e,s,a)=>{t.attr("class",s);let{width:n,height:o,x:c,y:h}=u(t,e);(0,i.a$)(t,o,n,a);let d=l(c,h,n,o,e);t.attr("viewBox",d),r.R.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),u=(0,a.K)((t,e)=>{let s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,a.K)((t,e,s,i,r)=>`${t-r} ${e-r} ${s} ${i}`,"createViewBox")},33332:(t,e,s)=>{s.d(e,{CP:()=>h,Ck:()=>g,HT:()=>p,PB:()=>d,aC:()=>c,lC:()=>l,m:()=>o,tk:()=>u});var i=s(69301),r=s(91158),a=s(76162),n=s(70668),u=(0,r.K)((t,e)=>{let s=t.append("rect");if(s.attr("x",e.x),s.attr("y",e.y),s.attr("fill",e.fill),s.attr("stroke",e.stroke),s.attr("width",e.width),s.attr("height",e.height),e.name&&s.attr("name",e.name),e.rx&&s.attr("rx",e.rx),e.ry&&s.attr("ry",e.ry),void 0!==e.attrs)for(let t in e.attrs)s.attr(t,e.attrs[t]);return e.class&&s.attr("class",e.class),s},"drawRect"),l=(0,r.K)((t,e)=>{u(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},"drawBackgroundRect"),o=(0,r.K)((t,e)=>{let s=e.text.replace(i.H1," "),r=t.append("text");r.attr("x",e.x),r.attr("y",e.y),r.attr("class","legend"),r.style("text-anchor",e.anchor),e.class&&r.attr("class",e.class);let a=r.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(s),r},"drawText"),c=(0,r.K)((t,e,s,i)=>{let r=t.append("image");r.attr("x",e),r.attr("y",s);let n=(0,a.J)(i);r.attr("xlink:href",n)},"drawImage"),h=(0,r.K)((t,e,s,i)=>{let r=t.append("use");r.attr("x",e),r.attr("y",s);let n=(0,a.J)(i);r.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),d=(0,r.K)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),p=(0,r.K)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),g=(0,r.K)(()=>{let t=(0,n.Ltv)(".mermaidTooltip");return t.empty()&&(t=(0,n.Ltv)("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),t},"createTooltip")},74773:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(91158),r=s(70668),a=(0,i.K)((t,e)=>{let s;return"sandbox"===e&&(s=(0,r.Ltv)("#i"+t)),("sandbox"===e?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},82237:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(25866),r=s(70897);let a=(t,e)=>i.A.lang.round(r.A.parse(t)[e])},92440:(t,e,s)=>{s.d(e,{AC:()=>T,tM:()=>C,ur:()=>D});var i=s(3392),r=s(74773),a=s(24002),n=s(44115),u=s(33807),l=s(33332),o=s(69981),c=s(13892),h=s(69301),d=s(98999),p=s(91158),g=s(70668),A=s(74574),b=s(82237),y=s(43500),k=class{constructor(){this.vertexCounter=0,this.config=(0,h.D7)(),this.diagramId="",this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=h.SV,this.setAccDescription=h.EI,this.setDiagramTitle=h.ke,this.getAccTitle=h.iN,this.getAccDescription=h.m7,this.getDiagramTitle=h.ab,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}static{(0,p.K)(this,"FlowDB")}sanitizeText(t){return h.Y2.sanitizeText(t,this.config)}sanitizeNodeLabelType(t){switch(t){case"markdown":case"string":case"text":return t;default:return"markdown"}}setDiagramId(t){this.diagramId=t}lookUpDomId(t){for(let e of this.vertices.values())if(e.id===t)return this.diagramId?`${this.diagramId}-${e.domId}`:e.domId;return this.diagramId?`${this.diagramId}-${t}`:t}addVertex(t,e,s,i,r,a,u={},l){let c,p;if(!t||0===t.trim().length)return;if(void 0!==l){let t;t=l.includes("\n")?l+"\n":"{\n"+l+"\n}",c=(0,n.H)(t,{schema:n.r})}let g=this.subGraphLookup.get(t);if(g&&c){g.metadata={...g.metadata,...c};return}let A=this.edges.find(e=>e.id===t);if(A){let t=c;t?.animate!==void 0&&(A.animate=t.animate),t?.animation!==void 0&&(A.animation=t.animation),t?.curve!==void 0&&(A.interpolate=t.curve);return}let b=this.vertices.get(t);if(void 0===b&&(void 0===e&&void 0===s&&null!=i&&d.R.warn(`Style applied to unknown node "${t}". This may indicate a typo. The node will be created automatically.`),b={id:t,labelType:"text",domId:"flowchart-"+t+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(t,b)),this.vertexCounter++,void 0!==e?(this.config=(0,h.D7)(),p=this.sanitizeText(e.text.trim()),b.labelType=e.type,p.startsWith('"')&&p.endsWith('"')&&(p=p.substring(1,p.length-1)),b.text=p):void 0===b.text&&(b.text=t),void 0!==s&&(b.type=s),null!=i&&i.forEach(t=>{b.styles.push(t)}),null!=r&&r.forEach(t=>{b.classes.push(t)}),void 0!==a&&(b.dir=a),void 0===b.props?b.props=u:void 0!==u&&Object.assign(b.props,u),void 0!==c){if(c.shape){if(c.shape!==c.shape.toLowerCase()||c.shape.includes("_"))throw Error(`No such shape: ${c.shape}. Shape names should be lowercase.`);if(!(0,o.aP)(c.shape))throw Error(`No such shape: ${c.shape}.`);b.type=c?.shape}c?.label&&(b.text=c?.label,b.labelType=this.sanitizeNodeLabelType(c?.labelType)),c?.icon&&(b.icon=c?.icon,c.label?.trim()||b.text!==t||(b.text="")),c?.form&&(b.form=c?.form),c?.pos&&(b.pos=c?.pos),c?.img&&(b.img=c?.img,c.label?.trim()||b.text!==t||(b.text="")),c?.constraint&&(b.constraint=c.constraint),c.w&&(b.assetWidth=Number(c.w)),c.h&&(b.assetHeight=Number(c.h))}}addSingleLink(t,e,s,i){let r={start:t,end:e,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};d.R.info("abc78 Got edge...",r);let a=s.text;if(void 0!==a&&(r.text=this.sanitizeText(a.text.trim()),r.text.startsWith('"')&&r.text.endsWith('"')&&(r.text=r.text.substring(1,r.text.length-1)),r.labelType=this.sanitizeNodeLabelType(a.type)),void 0!==s&&(r.type=s.type,r.stroke=s.stroke,r.length=s.length>10?10:s.length),i&&!this.edges.some(t=>t.id===i))r.id=i,r.isUserDefinedId=!0;else{let t=this.edges.filter(t=>t.start===r.start&&t.end===r.end);0===t.length?r.id=(0,c.rY)(r.start,r.end,{counter:0,prefix:"L"}):r.id=(0,c.rY)(r.start,r.end,{counter:t.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))d.R.info("Pushing edge..."),this.edges.push(r);else throw Error(`Edge limit exceeded. ${this.edges.length} edges found, but the limit is ${this.config.maxEdges}.
-
-Initialize mermaid with maxEdges set to a higher number to allow more edges.
-You cannot set this config via configuration inside the diagram as it is a secure config.
-You have to call mermaid.initialize.`)}isLinkData(t){return null!==t&&"object"==typeof t&&"id"in t&&"string"==typeof t.id}addLink(t,e,s){let i=this.isLinkData(s)?s.id.replace("@",""):void 0;for(let r of(d.R.info("addLink",t,e,i),t))for(let a of e){let n=r===t[t.length-1],u=a===e[0];n&&u?this.addSingleLink(r,a,s,i):this.addSingleLink(r,a,s,void 0)}}updateLinkInterpolate(t,e){t.forEach(t=>{"default"===t?this.edges.defaultInterpolate=e:this.edges[t].interpolate=e})}updateLink(t,e){t.forEach(t=>{if("number"==typeof t&&t>=this.edges.length)throw Error(`The index ${t} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${this.edges.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);"default"===t?this.edges.defaultStyle=e:(this.edges[t].style=e,(this.edges[t]?.style?.length??0)>0&&!this.edges[t]?.style?.some(t=>t?.startsWith("fill"))&&this.edges[t]?.style?.push("fill:none"))})}addClass(t,e){let s=e.join().replace(/\\,/g,"\xa7\xa7\xa7").replace(/,/g,";").replace(/§§§/g,",").split(";");t.split(",").forEach(t=>{let e=this.classes.get(t);void 0===e&&(e={id:t,styles:[],textStyles:[]},this.classes.set(t,e)),null!=s&&s.forEach(t=>{if(/color/.exec(t)){let s=t.replace("fill","bgFill");e.textStyles.push(s)}e.styles.push(t)})})}setDirection(t){this.direction=t.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),"TD"===this.direction&&(this.direction="TB")}setClass(t,e){for(let s of t.split(",")){let t=this.vertices.get(s);t&&t.classes.push(e);let i=this.edges.find(t=>t.id===s);i&&i.classes.push(e);let r=this.subGraphLookup.get(s);r&&r.classes.push(e)}}setTooltip(t,e){if(void 0!==e)for(let s of(e=this.sanitizeText(e),t.split(",")))this.tooltips.set("gen-1"===this.version?this.lookUpDomId(s):s,e)}setClickFun(t,e,s){if("loose"!==(0,h.D7)().securityLevel||void 0===e)return;let i=[];if("string"==typeof s){i=s.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t{let s=this.lookUpDomId(t),r=document.querySelector(`[id="${s}"]`);null!==r&&r.addEventListener("click",()=>{c._K.runFunc(e,...i)},!1)}))}setLink(t,e,s){t.split(",").forEach(t=>{let i=this.vertices.get(t);void 0!==i&&(i.link=c._K.formatUrl(e,this.config),i.linkTarget=s)}),this.setClass(t,"clickable")}getTooltip(t){return this.tooltips.get(t)}setClickEvent(t,e,s){t.split(",").forEach(t=>{this.setClickFun(t,e,s)}),this.setClass(t,"clickable")}bindFunctions(t){this.funs.forEach(e=>{e(t)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(t){let e=(0,l.Ck)();(0,g.Ltv)(t).select("svg").selectAll("g.node").on("mouseover",t=>{let s=(0,g.Ltv)(t.currentTarget),i=s.attr("title");if(null===i)return;let r=t.currentTarget?.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(s.attr("title")).style("left",window.scrollX+r.left+(r.right-r.left)/2+"px").style("top",window.scrollY+r.bottom+"px"),e.html(A.A.sanitize(i)),s.classed("hover",!0)}).on("mouseout",t=>{e.transition().duration(500).style("opacity",0),(0,g.Ltv)(t.currentTarget).classed("hover",!1)})}clear(t="gen-2"){this.vertices=new Map,this.classes=new Map,this.edges=[],this.funs=[this.setupToolTips.bind(this)],this.diagramId="",this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.tooltips=new Map,this.firstGraphFlag=!0,this.version=t,this.config=(0,h.D7)(),(0,h.IU)()}setGen(t){this.version=t||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(t,e,s){let i=t.text.trim(),r=s.text;t===s&&/\s/.exec(s.text)&&(i=void 0);let a=(0,p.K)(t=>{let e,s={boolean:{},number:{},string:{}},i=[];return{nodeList:t.filter(function(t){let r=typeof t;return t.stmt&&"dir"===t.stmt?(e=t.value,!1):""!==t.trim()&&(r in s?!s[r].hasOwnProperty(t)&&(s[r][t]=!0):!i.includes(t)&&i.push(t))}),dir:e}},"uniq")(e.flat()),n=a.nodeList,u=a.dir,l=(0,h.D7)().flowchart??{};if(u=u??(l.inheritDir?this.getDirection()??(0,h.D7)().direction??void 0:void 0),"gen-1"===this.version)for(let t=0;t2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=e,this.subGraphs[e].id===t)return{result:!0,count:0};let i=0,r=1;for(;i=0){let s=this.indexNodes2(t,e);if(s.result)return{result:!0,count:r+s.count};r+=s.count}i+=1}return{result:!1,count:r}}getDepthFirstPos(t){return this.posCrossRef[t]}indexNodes(){this.secCount=-1,this.subGraphs.length>0&&this.indexNodes2("none",this.subGraphs.length-1)}getSubGraphs(){return this.subGraphs}firstGraph(){return!!this.firstGraphFlag&&(this.firstGraphFlag=!1,!0)}destructStartLink(t){let e=t.trim(),s="arrow_open";switch(e[0]){case"<":s="arrow_point",e=e.slice(1);break;case"x":s="arrow_cross",e=e.slice(1);break;case"o":s="arrow_circle",e=e.slice(1)}let i="normal";return e.includes("=")&&(i="thick"),e.includes(".")&&(i="dotted"),{type:s,stroke:i}}countChar(t,e){let s=e.length,i=0;for(let r=0;r":i="arrow_point",e.startsWith("<")&&(i="double_"+i,s=s.slice(1));break;case"o":i="arrow_circle",e.startsWith("o")&&(i="double_"+i,s=s.slice(1))}let r="normal",a=s.length-1;s.startsWith("=")&&(r="thick"),s.startsWith("~")&&(r="invisible");let n=this.countChar(".",s);return n&&(r="dotted",a=n),{type:i,stroke:r,length:a}}destructLink(t,e){let s,i=this.destructEndLink(t);if(e){if((s=this.destructStartLink(e)).stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===s.type)s.type=i.type;else{if(s.type!==i.type)return{type:"INVALID",stroke:"INVALID"};s.type="double_"+s.type}return"double_arrow"===s.type&&(s.type="double_arrow_point"),s.length=i.length,s}return i}exists(t,e){for(let s of t)if(s.nodes.includes(e))return!0;return!1}makeUniq(t,e){let s=[];return t.nodes.forEach((i,r)=>{this.exists(e,i)||s.push(t.nodes[r])}),{nodes:s}}getTypeFromVertex(t){if(t.img)return"imageSquare";if(t.icon)return"circle"===t.form?"iconCircle":"square"===t.form?"iconSquare":"rounded"===t.form?"iconRounded":"icon";switch(t.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return t.type}}findNode(t,e){return t.find(t=>t.id===e)}destructEdgeType(t){let e="none",s="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":s=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":s=e=t.replace("double_","")}return{arrowTypeStart:e,arrowTypeEnd:s}}addNodeFromVertex(t,e,s,i,r,a){let n=s.get(t.id),u=i.get(t.id)??!1,l=this.findNode(e,t.id);if(l)l.cssStyles=t.styles,l.cssCompiledStyles=this.getCompiledStyles(t.classes),l.cssClasses=t.classes.join(" ");else{let s={id:t.id,label:t.text,labelType:t.labelType,labelStyle:"",parentId:n,padding:r.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),dir:t.dir,domId:t.domId,look:a,link:t.link,linkTarget:t.linkTarget,tooltip:this.getTooltip(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint};u?e.push({...s,isGroup:!0,shape:"rect"}):e.push({...s,isGroup:!1,shape:this.getTypeFromVertex(t)})}}getCompiledStyles(t){let e=[];for(let s of t){let t=this.classes.get(s);t?.styles&&(e=[...e,...t.styles??[]].map(t=>t.trim())),t?.textStyles&&(e=[...e,...t.textStyles??[]].map(t=>t.trim()))}return e}getData(){let t=(0,h.D7)(),e=[],s=[],i=this.getSubGraphs(),r=new Map,a=new Map,n=new Map;for(let t of i)for(let e of t.nodes)this.subGraphLookup.has(e)&&n.set(e,t.id);let u=(0,p.K)(t=>this.subGraphLookup.get(t)?.metadata?.view==="collapsed","isCollapsed"),l=(0,p.K)(t=>{let e,s=new Set,i=t;for(;void 0!==i&&!s.has(i);)s.add(i),u(i)&&(e=i),i=n.get(i);return e},"outermostCollapsed"),o=new Set,d=new Map;for(let t of i){let e=l(t.id);if(void 0!==e)for(let s of(t.id!==e&&(o.add(t.id),d.set(t.id,e)),t.nodes))s!==e&&(o.add(s),d.set(s,e))}for(let t=i.length-1;t>=0;t--){let e=i[t];if(!o.has(e.id))for(let t of(e.nodes.length>0&&a.set(e.id,!0),e.nodes))r.set(t,e.id)}for(let s=i.length-1;s>=0;s--){let a=i[s];o.has(a.id)||(a.metadata?.view==="collapsed"?e.push({id:a.id,label:a.title,labelStyle:"",labelType:a.labelType,parentId:r.get(a.id),padding:8,cssCompiledStyles:this.getCompiledStyles(a.classes),cssClasses:a.classes.join(" "),shape:"collapsedGroup",dir:a.dir,isGroup:!1,look:t.look}):e.push({id:a.id,label:a.title,labelStyle:"",labelType:a.labelType,parentId:r.get(a.id),padding:8,cssCompiledStyles:this.getCompiledStyles(a.classes),cssClasses:a.classes.join(" "),shape:"rect",dir:a.dir,isGroup:!0,look:t.look}))}this.getVertices().forEach(s=>{o.has(s.id)||this.addNodeFromVertex(s,e,r,a,t,t.look||"classic")});let g=this.getEdges();return g.forEach((e,i)=>{let{arrowTypeStart:r,arrowTypeEnd:a}=this.destructEdgeType(e.type),n=[...g.defaultStyle??[]],u=d.get(e.start)??e.start,l=d.get(e.end)??e.end;if(u===l&&(d.has(e.start)||d.has(e.end)))return;e.style&&n.push(...e.style);let o={id:(0,c.rY)(u,l,{counter:i,prefix:"L"},e.id),isUserDefinedId:e.isUserDefinedId,start:u,end:l,type:e.type??"normal",label:e.text,labelType:e.labelType,labelpos:"c",thickness:e.stroke,minlen:e.length,classes:e?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:e?.stroke==="invisible"||e?.type==="arrow_open"?"none":r,arrowTypeEnd:e?.stroke==="invisible"||e?.type==="arrow_open"?"none":a,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(e.classes),labelStyle:n,style:n,pattern:e.stroke,look:t.look,animate:e.animate,animation:e.animation,curve:e.interpolate||this.edges.defaultInterpolate||t.flowchart?.curve};s.push(o)}),{nodes:e,edges:s,other:{},config:t}}defaultConfig(){return h.ME.flowchart}},f={getClasses:(0,p.K)(function(t,e){return e.db.getClasses()},"getClasses"),draw:(0,p.K)(async function(t,e,s,i){d.R.info("REF0:"),d.R.info("Drawing state diagram (v2)",e);let{securityLevel:n,flowchart:l,layout:o}=(0,h.D7)();i.db.setDiagramId(e),d.R.debug("Before getData: ");let p=i.db.getData();d.R.debug("Data: ",p);let g=(0,r.A)(e,n),A=i.db.getDirection();p.type=i.type,p.layoutAlgorithm=(0,u.q7)(o),"dagre"===p.layoutAlgorithm&&"elk"===o&&d.R.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),p.direction=A,p.nodeSpacing=l?.nodeSpacing||50,p.rankSpacing=l?.rankSpacing||50,p.markers=["point","circle","cross"],p.diagramId=e,d.R.debug("REF1:",p),await (0,u.XX)(p,g);let b=p.config.flowchart?.diagramPadding??8;c._K.insertTitle(g,"flowchartTitleText",l?.titleTopMargin||0,i.db.getDiagramTitle()),(0,a.P)(g,b,"flowchart",l?.useMaxWidth||!1)},"draw")},m=function(){var t=(0,p.K)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[1,4],s=[1,3],i=[1,5],r=[1,8,9,10,11,27,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],a=[2,2],n=[1,13],u=[1,14],l=[1,15],o=[1,16],c=[1,23],h=[1,25],d=[1,26],g=[1,27],A=[1,50],b=[1,49],y=[1,29],k=[1,30],f=[1,31],m=[1,32],x=[1,33],E=[1,45],C=[1,47],D=[1,43],T=[1,48],F=[1,44],S=[1,51],_=[1,46],v=[1,52],B=[1,53],L=[1,34],w=[1,35],$=[1,36],I=[1,37],R=[1,38],N=[1,58],K=[1,8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],P=[1,62],G=[1,61],O=[1,63],M=[8,9,11,75,77,78],V=[1,79],U=[1,92],W=[1,97],z=[1,96],j=[1,93],Y=[1,89],H=[1,95],X=[1,91],q=[1,98],Q=[1,94],J=[1,99],Z=[1,90],tt=[8,9,10,11,40,75,77,78],te=[8,9,10,11,40,46,75,77,78],ts=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,78,89,102,105,106,109,111,114,115,116],ti=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],tr=[44,60,89,102,105,106,109,111,114,115,116],ta=[1,122],tn=[1,123],tu=[1,125],tl=[1,124],to=[44,60,62,74,89,102,105,106,109,111,114,115,116],tc=[1,134],th=[1,148],td=[1,149],tp=[1,150],tg=[1,151],tA=[1,136],tb=[1,138],ty=[1,142],tk=[1,143],tf=[1,144],tm=[1,145],tx=[1,146],tE=[1,147],tC=[1,152],tD=[1,153],tT=[1,132],tF=[1,133],tS=[1,140],t_=[1,135],tv=[1,139],tB=[1,137],tL=[8,9,10,11,27,32,34,36,38,44,60,84,85,86,87,88,89,102,105,106,109,111,114,115,116,121,122,123,124,125],tw=[1,155],t$=[1,157],tI=[8,9,11],tR=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],tN=[1,177],tK=[1,173],tP=[1,174],tG=[1,178],tO=[1,175],tM=[1,176],tV=[77,116,119],tU=[8,9,10,11,12,14,27,29,32,44,60,75,84,85,86,87,88,89,90,105,109,111,114,115,116],tW=[10,106],tz=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],tj=[1,248],tY=[1,246],tH=[1,250],tX=[1,244],tq=[1,245],tQ=[1,247],tJ=[1,249],tZ=[1,251],t1=[1,269],t0=[8,9,11,106],t2=[8,9,10,11,60,84,105,106,109,110,111,112],t8={trace:(0,p.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,LINK_ID:78,edgeTextToken:79,STR:80,MD_STR:81,textToken:82,keywords:83,STYLE:84,LINKSTYLE:85,CLASSDEF:86,CLASS:87,CLICK:88,DOWN:89,UP:90,textNoTagsToken:91,stylesOpt:92,"idString[vertex]":93,"idString[class]":94,CALLBACKNAME:95,CALLBACKARGS:96,HREF:97,LINK_TARGET:98,"STR[link]":99,"STR[tooltip]":100,alphaNum:101,DEFAULT:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,NODE_STRING:109,UNIT:110,BRKT:111,PCT:112,idStringToken:113,MINUS:114,MULT:115,UNICODE_TEXT:116,TEXT:117,TAGSTART:118,EDGE_TEXT:119,alphaNumToken:120,direction_tb:121,direction_bt:122,direction_rl:123,direction_lr:124,direction_td:125,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",78:"LINK_ID",80:"STR",81:"MD_STR",84:"STYLE",85:"LINKSTYLE",86:"CLASSDEF",87:"CLASS",88:"CLICK",89:"DOWN",90:"UP",93:"idString[vertex]",94:"idString[class]",95:"CALLBACKNAME",96:"CALLBACKARGS",97:"HREF",98:"LINK_TARGET",99:"STR[link]",100:"STR[tooltip]",102:"DEFAULT",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"NODE_STRING",110:"UNIT",111:"BRKT",112:"PCT",114:"MINUS",115:"MULT",116:"UNICODE_TEXT",117:"TEXT",118:"TAGSTART",119:"EDGE_TEXT",121:"direction_tb",122:"direction_bt",123:"direction_rl",124:"direction_lr",125:"direction_td"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[41,4],[76,1],[76,2],[76,1],[76,1],[72,1],[72,2],[73,3],[30,1],[30,2],[30,1],[30,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[103,1],[103,3],[92,1],[92,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[113,1],[82,1],[82,1],[82,1],[82,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[79,1],[79,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[120,1],[47,1],[47,2],[101,1],[101,2],[33,1],[33,1],[33,1],[33,1],[33,1]],performAction:(0,p.K)(function(t,e,s,i,r,a,n){var u=a.length-1;switch(r){case 2:case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 3:(!Array.isArray(a[u])||a[u].length>0)&&a[u-1].push(a[u]),this.$=a[u-1];break;case 4:case 183:case 44:case 54:case 76:case 181:this.$=a[u];break;case 11:i.setDirection("TB"),this.$="TB";break;case 12:i.setDirection(a[u-1]),this.$=a[u-1];break;case 27:this.$=a[u-1].nodes;break;case 33:this.$=i.addSubGraph(a[u-6],a[u-1],a[u-4]);break;case 34:this.$=i.addSubGraph(a[u-3],a[u-1],a[u-3]);break;case 35:this.$=i.addSubGraph(void 0,a[u-1],void 0);break;case 37:this.$=a[u].trim(),i.setAccTitle(this.$);break;case 38:case 39:this.$=a[u].trim(),i.setAccDescription(this.$);break;case 43:case 133:this.$=a[u-1]+a[u];break;case 45:i.addVertex(a[u-1][a[u-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,a[u]),i.addLink(a[u-3].stmt,a[u-1],a[u-2]),this.$={stmt:a[u-1],nodes:a[u-1].concat(a[u-3].nodes)};break;case 46:i.addLink(a[u-2].stmt,a[u],a[u-1]),this.$={stmt:a[u],nodes:a[u].concat(a[u-2].nodes)};break;case 47:i.addLink(a[u-3].stmt,a[u-1],a[u-2]),this.$={stmt:a[u-1],nodes:a[u-1].concat(a[u-3].nodes)};break;case 48:this.$={stmt:a[u-1],nodes:a[u-1]};break;case 49:i.addVertex(a[u-1][a[u-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,a[u]),this.$={stmt:a[u-1],nodes:a[u-1],shapeData:a[u]};break;case 50:this.$={stmt:a[u],nodes:a[u]};break;case 51:case 128:case 130:this.$=[a[u]];break;case 52:i.addVertex(a[u-5][a[u-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,a[u-4]),this.$=a[u-5].concat(a[u]);break;case 53:this.$=a[u-4].concat(a[u]);break;case 55:this.$=a[u-2],i.setClass(a[u-2],a[u]);break;case 56:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"square");break;case 57:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"doublecircle");break;case 58:this.$=a[u-5],i.addVertex(a[u-5],a[u-2],"circle");break;case 59:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"ellipse");break;case 60:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"stadium");break;case 61:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"subroutine");break;case 62:this.$=a[u-7],i.addVertex(a[u-7],a[u-1],"rect",void 0,void 0,void 0,Object.fromEntries([[a[u-5],a[u-3]]]));break;case 63:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"cylinder");break;case 64:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"round");break;case 65:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"diamond");break;case 66:this.$=a[u-5],i.addVertex(a[u-5],a[u-2],"hexagon");break;case 67:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"odd");break;case 68:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"trapezoid");break;case 69:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"inv_trapezoid");break;case 70:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"lean_right");break;case 71:this.$=a[u-3],i.addVertex(a[u-3],a[u-1],"lean_left");break;case 72:this.$=a[u],i.addVertex(a[u]);break;case 73:a[u-1].text=a[u],this.$=a[u-1];break;case 74:case 75:a[u-2].text=a[u-1],this.$=a[u-2];break;case 77:var l=i.destructLink(a[u],a[u-2]);this.$={type:l.type,stroke:l.stroke,length:l.length,text:a[u-1]};break;case 78:var l=i.destructLink(a[u],a[u-2]);this.$={type:l.type,stroke:l.stroke,length:l.length,text:a[u-1],id:a[u-3]};break;case 79:case 86:case 101:case 103:this.$={text:a[u],type:"text"};break;case 80:case 87:case 102:this.$={text:a[u-1].text+""+a[u],type:a[u-1].type};break;case 81:case 88:this.$={text:a[u],type:"string"};break;case 82:case 89:case 104:this.$={text:a[u],type:"markdown"};break;case 83:var l=i.destructLink(a[u]);this.$={type:l.type,stroke:l.stroke,length:l.length};break;case 84:var l=i.destructLink(a[u]);this.$={type:l.type,stroke:l.stroke,length:l.length,id:a[u-1]};break;case 85:this.$=a[u-1];break;case 105:this.$=a[u-4],i.addClass(a[u-2],a[u]);break;case 106:this.$=a[u-4],i.setClass(a[u-2],a[u]);break;case 107:case 115:this.$=a[u-1],i.setClickEvent(a[u-1],a[u]);break;case 108:case 116:this.$=a[u-3],i.setClickEvent(a[u-3],a[u-2]),i.setTooltip(a[u-3],a[u]);break;case 109:this.$=a[u-2],i.setClickEvent(a[u-2],a[u-1],a[u]);break;case 110:this.$=a[u-4],i.setClickEvent(a[u-4],a[u-3],a[u-2]),i.setTooltip(a[u-4],a[u]);break;case 111:this.$=a[u-2],i.setLink(a[u-2],a[u]);break;case 112:this.$=a[u-4],i.setLink(a[u-4],a[u-2]),i.setTooltip(a[u-4],a[u]);break;case 113:this.$=a[u-4],i.setLink(a[u-4],a[u-2],a[u]);break;case 114:this.$=a[u-6],i.setLink(a[u-6],a[u-4],a[u]),i.setTooltip(a[u-6],a[u-2]);break;case 117:this.$=a[u-1],i.setLink(a[u-1],a[u]);break;case 118:this.$=a[u-3],i.setLink(a[u-3],a[u-2]),i.setTooltip(a[u-3],a[u]);break;case 119:this.$=a[u-3],i.setLink(a[u-3],a[u-2],a[u]);break;case 120:this.$=a[u-5],i.setLink(a[u-5],a[u-4],a[u]),i.setTooltip(a[u-5],a[u-2]);break;case 121:this.$=a[u-4],i.addVertex(a[u-2],void 0,void 0,a[u]);break;case 122:this.$=a[u-4],i.updateLink([a[u-2]],a[u]);break;case 123:this.$=a[u-4],i.updateLink(a[u-2],a[u]);break;case 124:this.$=a[u-8],i.updateLinkInterpolate([a[u-6]],a[u-2]),i.updateLink([a[u-6]],a[u]);break;case 125:this.$=a[u-8],i.updateLinkInterpolate(a[u-6],a[u-2]),i.updateLink(a[u-6],a[u]);break;case 126:this.$=a[u-6],i.updateLinkInterpolate([a[u-4]],a[u]);break;case 127:this.$=a[u-6],i.updateLinkInterpolate(a[u-4],a[u]);break;case 129:case 131:a[u-2].push(a[u]),this.$=a[u-2];break;case 182:case 184:this.$=a[u-1]+""+a[u];break;case 185:this.$={stmt:"dir",value:"TB"};break;case 186:this.$={stmt:"dir",value:"BT"};break;case 187:this.$={stmt:"dir",value:"RL"};break;case 188:this.$={stmt:"dir",value:"LR"};break;case 189:this.$={stmt:"dir",value:"TD"}}},"anonymous"),table:[{3:1,4:2,9:e,10:s,12:i},{1:[3]},t(r,a,{5:6}),{4:7,9:e,10:s,12:i},{4:8,9:e,10:s,12:i},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:n,9:u,10:l,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:c,33:24,34:h,36:d,38:g,42:28,43:39,44:A,45:40,47:41,60:b,84:y,85:k,86:f,87:m,88:x,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B,121:L,122:w,123:$,124:I,125:R},t(r,[2,9]),t(r,[2,10]),t(r,[2,11]),{8:[1,55],9:[1,56],10:N,15:54,18:57},t(K,[2,3]),t(K,[2,4]),t(K,[2,5]),t(K,[2,6]),t(K,[2,7]),t(K,[2,8]),{8:P,9:G,11:O,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:P,9:G,11:O,21:68},{8:P,9:G,11:O,21:69},{8:P,9:G,11:O,21:70},{8:P,9:G,11:O,21:71},{8:P,9:G,11:O,21:72},{8:P,9:G,10:[1,73],11:O,21:74},t(K,[2,36]),{35:[1,75]},{37:[1,76]},t(K,[2,39]),t(M,[2,50],{18:77,39:78,10:N,40:V}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:U,44:W,60:z,80:[1,87],89:j,95:[1,84],97:[1,85],101:86,105:Y,106:H,109:X,111:q,114:Q,115:J,116:Z,120:88},t(K,[2,185]),t(K,[2,186]),t(K,[2,187]),t(K,[2,188]),t(K,[2,189]),t(tt,[2,51]),t(tt,[2,54],{46:[1,100]}),t(te,[2,72],{113:113,29:[1,101],44:A,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:b,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:E,102:C,105:D,106:T,109:F,111:S,114:_,115:v,116:B}),t(ts,[2,181]),t(ts,[2,142]),t(ts,[2,143]),t(ts,[2,144]),t(ts,[2,145]),t(ts,[2,146]),t(ts,[2,147]),t(ts,[2,148]),t(ts,[2,149]),t(ts,[2,150]),t(ts,[2,151]),t(ts,[2,152]),t(r,[2,12]),t(r,[2,18]),t(r,[2,19]),{9:[1,114]},t(ti,[2,26],{18:115,10:N}),t(K,[2,27]),{42:116,43:39,44:A,45:40,47:41,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},t(K,[2,40]),t(K,[2,41]),t(K,[2,42]),t(tr,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:ta,81:tn,116:tu,119:tl},{75:[1,126],77:[1,127]},t(to,[2,83]),t(K,[2,28]),t(K,[2,29]),t(K,[2,30]),t(K,[2,31]),t(K,[2,32]),{10:tc,12:th,14:td,27:tp,28:128,32:tg,44:tA,60:tb,75:ty,80:[1,130],81:[1,131],83:141,84:tk,85:tf,86:tm,87:tx,88:tE,89:tC,90:tD,91:129,105:tT,109:tF,111:tS,114:t_,115:tv,116:tB},t(tL,a,{5:154}),t(K,[2,37]),t(K,[2,38]),t(M,[2,48],{44:tw}),t(M,[2,49],{18:156,10:N,40:t$}),t(tt,[2,44]),{44:A,47:158,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},{102:[1,159],103:160,105:[1,161]},{44:A,47:162,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},{44:A,47:163,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},t(tI,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},t(tI,[2,115],{120:168,10:[1,167],14:U,44:W,60:z,89:j,105:Y,106:H,109:X,111:q,114:Q,115:J,116:Z}),t(tI,[2,117],{10:[1,169]}),t(tR,[2,183]),t(tR,[2,170]),t(tR,[2,171]),t(tR,[2,172]),t(tR,[2,173]),t(tR,[2,174]),t(tR,[2,175]),t(tR,[2,176]),t(tR,[2,177]),t(tR,[2,178]),t(tR,[2,179]),t(tR,[2,180]),{44:A,47:170,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},{30:171,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:179,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:181,50:[1,180],67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:182,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:183,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:184,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{109:[1,185]},{30:186,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:187,65:[1,188],67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:189,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:190,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{30:191,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},t(ts,[2,182]),t(r,[2,20]),t(ti,[2,25]),t(M,[2,46],{39:192,18:193,10:N,40:V}),t(tr,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{77:[1,197],79:198,116:tu,119:tl},t(tV,[2,79]),t(tV,[2,81]),t(tV,[2,82]),t(tV,[2,168]),t(tV,[2,169]),{76:199,79:121,80:ta,81:tn,116:tu,119:tl},t(to,[2,84]),{8:P,9:G,10:tc,11:O,12:th,14:td,21:201,27:tp,29:[1,200],32:tg,44:tA,60:tb,75:ty,83:141,84:tk,85:tf,86:tm,87:tx,88:tE,89:tC,90:tD,91:202,105:tT,109:tF,111:tS,114:t_,115:tv,116:tB},t(tU,[2,101]),t(tU,[2,103]),t(tU,[2,104]),t(tU,[2,157]),t(tU,[2,158]),t(tU,[2,159]),t(tU,[2,160]),t(tU,[2,161]),t(tU,[2,162]),t(tU,[2,163]),t(tU,[2,164]),t(tU,[2,165]),t(tU,[2,166]),t(tU,[2,167]),t(tU,[2,90]),t(tU,[2,91]),t(tU,[2,92]),t(tU,[2,93]),t(tU,[2,94]),t(tU,[2,95]),t(tU,[2,96]),t(tU,[2,97]),t(tU,[2,98]),t(tU,[2,99]),t(tU,[2,100]),{6:11,7:12,8:n,9:u,10:l,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:c,32:[1,203],33:24,34:h,36:d,38:g,42:28,43:39,44:A,45:40,47:41,60:b,84:y,85:k,86:f,87:m,88:x,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B,121:L,122:w,123:$,124:I,125:R},{10:N,18:204},{44:[1,205]},t(tt,[2,43]),{10:[1,206],44:A,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:113,114:_,115:v,116:B},{10:[1,207]},{10:[1,208],106:[1,209]},t(tW,[2,128]),{10:[1,210],44:A,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:113,114:_,115:v,116:B},{10:[1,211],44:A,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:113,114:_,115:v,116:B},{80:[1,212]},t(tI,[2,109],{10:[1,213]}),t(tI,[2,111],{10:[1,214]}),{80:[1,215]},t(tR,[2,184]),{80:[1,216],98:[1,217]},t(tt,[2,55],{113:113,44:A,60:b,89:E,102:C,105:D,106:T,109:F,111:S,114:_,115:v,116:B}),{31:[1,218],67:tN,82:219,116:tG,117:tO,118:tM},t(tz,[2,86]),t(tz,[2,88]),t(tz,[2,89]),t(tz,[2,153]),t(tz,[2,154]),t(tz,[2,155]),t(tz,[2,156]),{49:[1,220],67:tN,82:219,116:tG,117:tO,118:tM},{30:221,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{51:[1,222],67:tN,82:219,116:tG,117:tO,118:tM},{53:[1,223],67:tN,82:219,116:tG,117:tO,118:tM},{55:[1,224],67:tN,82:219,116:tG,117:tO,118:tM},{57:[1,225],67:tN,82:219,116:tG,117:tO,118:tM},{60:[1,226]},{64:[1,227],67:tN,82:219,116:tG,117:tO,118:tM},{66:[1,228],67:tN,82:219,116:tG,117:tO,118:tM},{30:229,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},{31:[1,230],67:tN,82:219,116:tG,117:tO,118:tM},{67:tN,69:[1,231],71:[1,232],82:219,116:tG,117:tO,118:tM},{67:tN,69:[1,234],71:[1,233],82:219,116:tG,117:tO,118:tM},t(M,[2,45],{18:156,10:N,40:t$}),t(M,[2,47],{44:tw}),t(tr,[2,75]),t(tr,[2,74]),{62:[1,235],67:tN,82:219,116:tG,117:tO,118:tM},t(tr,[2,77]),t(tV,[2,80]),{77:[1,236],79:198,116:tu,119:tl},{30:237,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},t(tL,a,{5:238}),t(tU,[2,102]),t(K,[2,35]),{43:239,44:A,45:40,47:41,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},{10:N,18:240},{10:tj,60:tY,84:tH,92:241,105:tX,107:242,108:243,109:tq,110:tQ,111:tJ,112:tZ},{10:tj,60:tY,84:tH,92:252,104:[1,253],105:tX,107:242,108:243,109:tq,110:tQ,111:tJ,112:tZ},{10:tj,60:tY,84:tH,92:254,104:[1,255],105:tX,107:242,108:243,109:tq,110:tQ,111:tJ,112:tZ},{105:[1,256]},{10:tj,60:tY,84:tH,92:257,105:tX,107:242,108:243,109:tq,110:tQ,111:tJ,112:tZ},{44:A,47:258,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},t(tI,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},t(tI,[2,116]),t(tI,[2,118],{10:[1,262]}),t(tI,[2,119]),t(te,[2,56]),t(tz,[2,87]),t(te,[2,57]),{51:[1,263],67:tN,82:219,116:tG,117:tO,118:tM},t(te,[2,64]),t(te,[2,59]),t(te,[2,60]),t(te,[2,61]),{109:[1,264]},t(te,[2,63]),t(te,[2,65]),{66:[1,265],67:tN,82:219,116:tG,117:tO,118:tM},t(te,[2,67]),t(te,[2,68]),t(te,[2,70]),t(te,[2,69]),t(te,[2,71]),t([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),t(tr,[2,78]),{31:[1,266],67:tN,82:219,116:tG,117:tO,118:tM},{6:11,7:12,8:n,9:u,10:l,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:c,32:[1,267],33:24,34:h,36:d,38:g,42:28,43:39,44:A,45:40,47:41,60:b,84:y,85:k,86:f,87:m,88:x,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B,121:L,122:w,123:$,124:I,125:R},t(tt,[2,53]),{43:268,44:A,45:40,47:41,60:b,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B},t(tI,[2,121],{106:t1}),t(t0,[2,130],{108:270,10:tj,60:tY,84:tH,105:tX,109:tq,110:tQ,111:tJ,112:tZ}),t(t2,[2,132]),t(t2,[2,134]),t(t2,[2,135]),t(t2,[2,136]),t(t2,[2,137]),t(t2,[2,138]),t(t2,[2,139]),t(t2,[2,140]),t(t2,[2,141]),t(tI,[2,122],{106:t1}),{10:[1,271]},t(tI,[2,123],{106:t1}),{10:[1,272]},t(tW,[2,129]),t(tI,[2,105],{106:t1}),t(tI,[2,106],{113:113,44:A,60:b,89:E,102:C,105:D,106:T,109:F,111:S,114:_,115:v,116:B}),t(tI,[2,110]),t(tI,[2,112],{10:[1,273]}),t(tI,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:P,9:G,11:O,21:278},t(K,[2,34]),t(tt,[2,52]),{10:tj,60:tY,84:tH,105:tX,107:279,108:243,109:tq,110:tQ,111:tJ,112:tZ},t(t2,[2,133]),{14:U,44:W,60:z,89:j,101:280,105:Y,106:H,109:X,111:q,114:Q,115:J,116:Z,120:88},{14:U,44:W,60:z,89:j,101:281,105:Y,106:H,109:X,111:q,114:Q,115:J,116:Z,120:88},{98:[1,282]},t(tI,[2,120]),t(te,[2,58]),{30:283,67:tN,80:tK,81:tP,82:172,116:tG,117:tO,118:tM},t(te,[2,66]),t(tL,a,{5:284}),t(t0,[2,131],{108:270,10:tj,60:tY,84:tH,105:tX,109:tq,110:tQ,111:tJ,112:tZ}),t(tI,[2,126],{120:168,10:[1,285],14:U,44:W,60:z,89:j,105:Y,106:H,109:X,111:q,114:Q,115:J,116:Z}),t(tI,[2,127],{120:168,10:[1,286],14:U,44:W,60:z,89:j,105:Y,106:H,109:X,111:q,114:Q,115:J,116:Z}),t(tI,[2,114]),{31:[1,287],67:tN,82:219,116:tG,117:tO,118:tM},{6:11,7:12,8:n,9:u,10:l,11:o,20:17,22:18,23:19,24:20,25:21,26:22,27:c,32:[1,288],33:24,34:h,36:d,38:g,42:28,43:39,44:A,45:40,47:41,60:b,84:y,85:k,86:f,87:m,88:x,89:E,102:C,105:D,106:T,109:F,111:S,113:42,114:_,115:v,116:B,121:L,122:w,123:$,124:I,125:R},{10:tj,60:tY,84:tH,92:289,105:tX,107:242,108:243,109:tq,110:tQ,111:tJ,112:tZ},{10:tj,60:tY,84:tH,92:290,105:tX,107:242,108:243,109:tq,110:tQ,111:tJ,112:tZ},t(te,[2,62]),t(K,[2,33]),t(tI,[2,124],{106:t1}),t(tI,[2,125],{106:t1})],defaultActions:{},parseError:(0,p.K)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,p.K)(function(t){var e=this,s=[0],i=[],r=[null],a=[],n=this.table,u="",l=0,o=0,c=0,h=a.slice.call(arguments,1),d=Object.create(this.lexer),g={};for(var A in this.yy)Object.prototype.hasOwnProperty.call(this.yy,A)&&(g[A]=this.yy[A]);d.setInput(t,g),g.lexer=d,g.parser=this,void 0===d.yylloc&&(d.yylloc={});var b=d.yylloc;a.push(b);var y=d.options&&d.options.ranges;function k(){var t;return"number"!=typeof(t=i.pop()||d.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.parseError?this.parseError=g.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,p.K)(function(t){s.length=s.length-2*t,r.length=r.length-t,a.length=a.length-t},"popStack"),(0,p.K)(k,"lex");for(var f,m,x,E,C,D,T,F,S,_={};;){if(x=s[s.length-1],this.defaultActions[x]?E=this.defaultActions[x]:(null==f&&(f=k()),E=n[x]&&n[x][f]),void 0===E||!E.length||!E[0]){var v="";for(D in S=[],n[x])this.terminals_[D]&&D>2&&S.push("'"+this.terminals_[D]+"'");v=d.showPosition?"Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(v,{text:d.match,token:this.terminals_[f]||f,line:d.yylineno,loc:b,expected:S})}if(E[0]instanceof Array&&E.length>1)throw Error("Parse Error: multiple actions possible at state: "+x+", token: "+f);switch(E[0]){case 1:s.push(f),r.push(d.yytext),a.push(d.yylloc),s.push(E[1]),f=null,m?(f=m,m=null):(o=d.yyleng,u=d.yytext,l=d.yylineno,b=d.yylloc,c>0&&c--);break;case 2:if(T=this.productions_[E[1]][1],_.$=r[r.length-T],_._$={first_line:a[a.length-(T||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(T||1)].first_column,last_column:a[a.length-1].last_column},y&&(_._$.range=[a[a.length-(T||1)].range[0],a[a.length-1].range[1]]),void 0!==(C=this.performAction.apply(_,[u,o,l,g,E[1],r,a].concat(h))))return C;T&&(s=s.slice(0,-1*T*2),r=r.slice(0,-1*T),a=a.slice(0,-1*T)),s.push(this.productions_[E[1]][0]),r.push(_.$),a.push(_._$),F=n[s[s.length-2]][s[s.length-1]],s.push(F);break;case 3:return!0}}return!0},"parse")};function t6(){this.yy={}}return t8.lexer={EOF:1,parseError:(0,p.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,p.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,p.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,p.K)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,p.K)(function(){return this._more=!0,this},"more"),reject:(0,p.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,p.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,p.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,p.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,p.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,p.K)(function(t,e){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var a in r)this[a]=r[a];return!1},"test_match"),next:(0,p.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,s,i,r=this._currentRules(),a=0;ae[0].length)){if(e=s,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,r[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,p.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,p.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,p.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,p.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,p.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,p.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,p.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,p.K)(function(t,e,s,i){switch(s){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 12:case 14:case 17:case 20:case 23:case 33:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),e.yytext="",40;case 8:return this.pushState("shapeDataStr"),40;case 9:return this.popState(),40;case 10:return e.yytext=e.yytext.replace(/\n\s*/g," "),40;case 11:return 40;case 13:this.begin("callbackname");break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 95;case 18:return 96;case 19:return"MD_STR";case 21:this.begin("md_string");break;case 22:return"STR";case 24:this.pushState("string");break;case 25:return 84;case 26:return 102;case 27:return 85;case 28:return 104;case 29:return 86;case 30:return 87;case 31:return 97;case 32:this.begin("click");break;case 34:return 88;case 35:case 36:case 37:case 38:return t.lex.firstGraph()&&this.begin("dir"),12;case 39:return 27;case 40:return 32;case 41:case 42:case 43:case 44:return 98;case 45:return this.popState(),13;case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:return this.popState(),14;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 124;case 60:return 125;case 61:return 78;case 62:return 105;case 63:case 104:return 111;case 64:return 46;case 65:return 60;case 66:case 105:return 44;case 67:return 8;case 68:return 106;case 69:case 103:return 115;case 70:case 73:case 76:return this.popState(),77;case 71:return this.pushState("edgeText"),75;case 72:case 75:case 78:return 119;case 74:return this.pushState("thickEdgeText"),75;case 77:return this.pushState("dottedEdgeText"),75;case 79:return 77;case 80:return this.popState(),53;case 81:case 117:return"TEXT";case 82:return this.pushState("ellipseText"),52;case 83:return this.popState(),55;case 84:return this.pushState("text"),54;case 85:return this.popState(),57;case 86:return this.pushState("text"),56;case 87:return 58;case 88:return this.pushState("text"),67;case 89:return this.popState(),64;case 90:return this.pushState("text"),63;case 91:return this.popState(),49;case 92:return this.pushState("text"),48;case 93:return this.popState(),69;case 94:return this.popState(),71;case 95:return 117;case 96:return this.pushState("trapText"),68;case 97:return this.pushState("trapText"),70;case 98:return 118;case 99:return 67;case 100:return 90;case 101:return"SEP";case 102:return 89;case 106:return 109;case 107:return 114;case 108:return 116;case 109:return this.popState(),62;case 110:return this.pushState("text"),62;case 111:return this.popState(),51;case 112:return this.pushState("text"),50;case 113:return this.popState(),31;case 114:return this.pushState("text"),29;case 115:return this.popState(),66;case 116:return this.pushState("text"),65;case 118:return"QUOTE";case 119:return 9;case 120:return 10;case 121:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:swimlane-beta\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:.*direction\s+TD[^\n]*)/,/^(?:[^\s\"]+@(?=[^\{\"]))/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},shapeData:{rules:[8,11,12,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},callbackargs:{rules:[17,18,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},callbackname:{rules:[14,15,16,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},href:{rules:[21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},click:{rules:[21,24,33,34,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},dottedEdgeText:{rules:[21,24,76,78,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},thickEdgeText:{rules:[21,24,73,75,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},edgeText:{rules:[21,24,70,72,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},trapText:{rules:[21,24,79,82,84,86,90,92,93,94,95,96,97,110,112,114,116],inclusive:!1},ellipseText:{rules:[21,24,79,80,81,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},text:{rules:[21,24,79,82,83,84,85,86,89,90,91,92,96,97,109,110,111,112,113,114,115,116,117],inclusive:!1},vertex:{rules:[21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},dir:{rules:[21,24,45,46,47,48,49,50,51,52,53,54,55,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},acc_descr:{rules:[3,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},acc_title:{rules:[1,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},md_string:{rules:[19,20,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},string:{rules:[21,22,23,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,44,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,76,77,79,82,84,86,87,88,90,92,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,114,116,118,119,120,121],inclusive:!0}}},(0,p.K)(t6,"Parser"),t6.prototype=t8,t8.Parser=t6,new t6}();m.parser=m;var x=Object.assign({},m);x.parse=t=>{let e=t.replace(/}\s*\n/g,"}\n");return m.parse(e)};var E=(0,p.K)((t,e)=>{let s=b.A,i=s(t,"r"),r=s(t,"g"),a=s(t,"b");return y.A(i,r,a,e)},"fade"),C=(0,p.K)(t=>`.label {
- font-family: ${t.fontFamily};
- color: ${t.nodeTextColor||t.textColor};
- }
- .cluster-label text {
- fill: ${t.titleColor};
- }
- .cluster-label span {
- color: ${t.titleColor};
- }
- .cluster-label span p {
- background-color: transparent;
- }
-
- .label text,span {
- fill: ${t.nodeTextColor||t.textColor};
- color: ${t.nodeTextColor||t.textColor};
- }
-
- .node rect,
- .node circle,
- .node ellipse,
- .node polygon,
- .node path {
- fill: ${t.mainBkg};
- stroke: ${t.nodeBorder};
- stroke-width: ${t.strokeWidth??1}px;
- }
- .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label {
- text-anchor: middle;
- }
-
- .node .katex path {
- fill: #000;
- stroke: #000;
- stroke-width: 1px;
- }
-
- .rough-node .label,.node .label, .image-shape .label, .icon-shape .label {
- text-align: center;
- }
- .node.clickable {
- cursor: pointer;
- }
-
-
- .root .anchor path {
- fill: ${t.lineColor} !important;
- stroke-width: 0;
- stroke: ${t.lineColor};
- }
-
- .arrowheadPath {
- fill: ${t.arrowheadColor};
- }
-
- .edgePaths .path {
- stroke: ${t.lineColor};
- stroke-width: ${t.strokeWidth??2}px;
- }
-
- .flowchart-link {
- stroke: ${t.lineColor};
- fill: none;
- }
-
- .edgeLabel {
- background-color: ${t.edgeLabelBackground};
- p {
- background-color: ${t.edgeLabelBackground};
- }
- rect {
- opacity: 0.5;
- background-color: ${t.edgeLabelBackground};
- fill: ${t.edgeLabelBackground};
- }
- text-align: center;
- }
-
- /* For html labels only */
- .labelBkg {
- background-color: ${E(t.edgeLabelBackground,.5)};
- // background-color:
- }
-
- .cluster rect {
- fill: ${t.clusterBkg};
- stroke: ${t.clusterBorder};
- stroke-width: 1px;
- }
-
- .cluster text {
- fill: ${t.titleColor};
- }
-
- .cluster span {
- color: ${t.titleColor};
- }
- /* .cluster div {
- color: ${t.titleColor};
- } */
-
- /* Collapsed subgraph node (@{ view: collapsed }) */
- .node .collapsed-indicator {
- fill: ${t.clusterBorder};
- stroke: none;
- opacity: 0.6;
- }
-
- .node .collapsed-separator {
- stroke: ${t.clusterBorder};
- stroke-width: 0.75px;
- }
-
- div.mermaidTooltip {
- position: absolute;
- text-align: center;
- max-width: 200px;
- padding: 2px;
- font-family: ${t.fontFamily};
- font-size: 12px;
- background: ${t.tertiaryColor};
- border: 1px solid ${t.border2};
- border-radius: 2px;
- pointer-events: none;
- z-index: 100;
- }
-
- .flowchartTitleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${t.textColor};
- }
-
- rect.text {
- fill: none;
- stroke-width: 0;
- }
-
- .icon-shape, .image-shape {
- background-color: ${t.edgeLabelBackground};
- p {
- background-color: ${t.edgeLabelBackground};
- padding: 2px;
- }
- .label rect {
- opacity: 0.5;
- background-color: ${t.edgeLabelBackground};
- fill: ${t.edgeLabelBackground};
- }
- text-align: center;
- }
- ${(0,i.o)()}
-`,"getStyles"),D=(0,p.K)(({defaultLayout:t,styles:e=C}={})=>({parser:x,get db(){return new k},renderer:f,styles:e,init:(0,p.K)(e=>{e.flowchart||(e.flowchart={});let s=(0,h.TM)().layout??t??e.layout;s&&(0,h.XV)({layout:s}),e.flowchart.arrowMarkerAbsolute=e.arrowMarkerAbsolute,(0,h.XV)({flowchart:{arrowMarkerAbsolute:e.arrowMarkerAbsolute}})},"init")}),"createFlowDiagram"),T=D()}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2459.e7dba3820e8e2824.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2459.e7dba3820e8e2824.js
deleted file mode 100644
index 2c8239147..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2459.e7dba3820e8e2824.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2459],{62459:(a,e,s)=>{s.d(e,{diagram:()=>k.AC});var k=s(92440);s(3392),s(74773),s(24002),s(44115),s(33807),s(33332),s(48734),s(11232),s(13031),s(69981),s(5663),s(82142),s(29278),s(13892),s(69301),s(98999),s(91158)}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2483.cc7d37cb7855171b.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2483.cc7d37cb7855171b.js
deleted file mode 100644
index 4f294b1f7..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2483.cc7d37cb7855171b.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2483],{22483:(t,e,i)=>{i.d(e,{diagram:()=>ti});var n=i(94191),r=i(13892),a=i(69301),s=i(98999),o=i(91158),l=i(70668),c=i(54333),h=i(80665),d=i(35177),u=function(){var t=(0,o.K)(function(t,e,i,n){for(i=i||{},n=t.length;n--;i[t[n]]=e);return i},"o"),e=[6,11,13,14,15,17,19,20,23,24],i=[1,12],n=[1,13],r=[1,14],a=[1,15],s=[1,16],l=[1,19],c=[1,20],h={trace:(0,o.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:"error",6:"EOF",7:"timeline",8:"timeline_lr",9:"timeline_td",11:"SPACE",13:"NEWLINE",14:"title",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",23:"period",24:"event"},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:(0,o.K)(function(t,e,i,n,r,a,s){var o=a.length-1;switch(r){case 1:return a[o-1];case 3:n.setDirection("LR");break;case 4:n.setDirection("TD");break;case 5:case 9:case 10:this.$=[];break;case 6:a[o-1].push(a[o]),this.$=a[o-1];break;case 7:case 8:this.$=a[o];break;case 11:n.getCommonDb().setDiagramTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 12:this.$=a[o].trim(),n.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=a[o].trim(),n.getCommonDb().setAccDescription(this.$);break;case 15:n.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 18:n.addTask(a[o],0,""),this.$=a[o];break;case 19:n.addEvent(a[o].substr(2)),this.$=a[o]}},"anonymous"),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},t(e,[2,5],{5:6}),t(e,[2,2]),t(e,[2,3]),t(e,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:i,15:n,17:r,19:a,20:s,21:17,22:18,23:l,24:c},t(e,[2,10],{1:[2,1]}),t(e,[2,6]),{12:21,14:i,15:n,17:r,19:a,20:s,21:17,22:18,23:l,24:c},t(e,[2,8]),t(e,[2,9]),t(e,[2,11]),{16:[1,22]},{18:[1,23]},t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,7]),t(e,[2,12]),t(e,[2,13])],defaultActions:{},parseError:(0,o.K)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,o.K)(function(t){var e=this,i=[0],n=[],r=[null],a=[],s=this.table,l="",c=0,h=0,d=0,u=a.slice.call(arguments,1),p=Object.create(this.lexer),g={};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(g[f]=this.yy[f]);p.setInput(t,g),g.lexer=p,g.parser=this,void 0===p.yylloc&&(p.yylloc={});var y=p.yylloc;a.push(y);var m=p.options&&p.options.ranges;function b(){var t;return"number"!=typeof(t=n.pop()||p.lex()||1)&&(t instanceof Array&&(t=(n=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.parseError?this.parseError=g.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,o.K)(function(t){i.length=i.length-2*t,r.length=r.length-t,a.length=a.length-t},"popStack"),(0,o.K)(b,"lex");for(var x,k,_,w,$,v,K,S,E,R={};;){if(_=i[i.length-1],this.defaultActions[_]?w=this.defaultActions[_]:(null==x&&(x=b()),w=s[_]&&s[_][x]),void 0===w||!w.length||!w[0]){var I="";for(v in E=[],s[_])this.terminals_[v]&&v>2&&E.push("'"+this.terminals_[v]+"'");I=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==x?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(I,{text:p.match,token:this.terminals_[x]||x,line:p.yylineno,loc:y,expected:E})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+x);switch(w[0]){case 1:i.push(x),r.push(p.yytext),a.push(p.yylloc),i.push(w[1]),x=null,k?(x=k,k=null):(h=p.yyleng,l=p.yytext,c=p.yylineno,y=p.yylloc,d>0&&d--);break;case 2:if(K=this.productions_[w[1]][1],R.$=r[r.length-K],R._$={first_line:a[a.length-(K||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(K||1)].first_column,last_column:a[a.length-1].last_column},m&&(R._$.range=[a[a.length-(K||1)].range[0],a[a.length-1].range[1]]),void 0!==($=this.performAction.apply(R,[l,h,c,g,w[1],r,a].concat(u))))return $;K&&(i=i.slice(0,-1*K*2),r=r.slice(0,-1*K),a=a.slice(0,-1*K)),i.push(this.productions_[w[1]][0]),r.push(R.$),a.push(R._$),S=s[i[i.length-2]][i[i.length-1]],i.push(S);break;case 3:return!0}}return!0},"parse")};function d(){this.yy={}}return h.lexer={EOF:1,parseError:(0,o.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,o.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,o.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,o.K)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,o.K)(function(){return this._more=!0,this},"more"),reject:(0,o.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,o.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,o.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,o.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,o.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,o.K)(function(t,e){var i,n,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var a in r)this[a]=r[a];return!1},"test_match"),next:(0,o.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,n,r=this._currentRules(),a=0;ae[0].length)){if(e=i,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,r[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,o.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,o.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,o.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,o.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,o.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,o.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,o.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,o.K)(function(t,e,i,n){switch(i){case 0:case 1:case 3:case 4:break;case 2:return 13;case 5:return 8;case 6:return 9;case 7:return 7;case 8:return 14;case 9:return this.begin("acc_title"),15;case 10:return this.popState(),"acc_title_value";case 11:return this.begin("acc_descr"),17;case 12:return this.popState(),"acc_descr_value";case 13:this.begin("acc_descr_multiline");break;case 14:this.popState();break;case 15:return"acc_descr_multiline_value";case 16:return 20;case 17:return 24;case 18:return 23;case 19:return 6;case 20:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline[ \t]+LR\b)/i,/^(?:timeline[ \t]+TD\b)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s(?:[^:\n]|:(?!\s))+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[14,15],inclusive:!1},acc_descr:{rules:[12],inclusive:!1},acc_title:{rules:[10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,11,13,16,17,18,19,20],inclusive:!0}}},(0,o.K)(d,"Parser"),d.prototype=h,h.Parser=d,new d}();u.parser=u;var p={};(0,o.V)(p,{addEvent:()=>R,addSection:()=>v,addTask:()=>E,addTaskOrg:()=>I,clear:()=>_,default:()=>M,getCommonDb:()=>k,getDirection:()=>$,getSections:()=>K,getTasks:()=>S,setDirection:()=>w});var g="",f=0,y="LR",m=[],b=[],x=[],k=(0,o.K)(()=>a.Wt,"getCommonDb"),_=(0,o.K)(function(){m.length=0,b.length=0,g="",x.length=0,y="LR",(0,a.IU)()},"clear"),w=(0,o.K)(function(t){y=t},"setDirection"),$=(0,o.K)(function(){return y},"getDirection"),v=(0,o.K)(function(t){g=t,m.push(t)},"addSection"),K=(0,o.K)(function(){return m},"getSections"),S=(0,o.K)(function(){let t=T(),e=0;for(;!t&&e<100;)t=T(),e++;return b.push(...x),b},"getTasks"),E=(0,o.K)(function(t,e,i){let n={id:f++,section:g,type:g,task:t,score:e||0,events:i?[i]:[]};x.push(n)},"addTask"),R=(0,o.K)(function(t){x.find(t=>t.id===f-1).events.push(t)},"addEvent"),I=(0,o.K)(function(t){let e={section:g,type:g,description:t,task:t,classes:[]};b.push(e)},"addTaskOrg"),T=(0,o.K)(function(){let t=(0,o.K)(function(t){return x[t].processed},"compileTask"),e=!0;for(let[i,n]of x.entries())t(i),e=e&&n.processed;return e},"compileTasks"),M={clear:_,getCommonDb:k,getDirection:$,setDirection:w,addSection:v,getSections:K,getTasks:S,addTask:E,addTaskOrg:I,addEvent:R},L=0,H=(0,o.K)(function(t,e){let i=t.append("rect");return i.attr("x",e.x),i.attr("y",e.y),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("width",e.width),i.attr("height",e.height),i.attr("rx",e.rx),i.attr("ry",e.ry),void 0!==e.class&&i.attr("class",e.class),i},"drawRect"),C=(0,o.K)(function(t,e){let i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=t.append("g");function r(t){let i=(0,l.JLW)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function a(t){let i=(0,l.JLW)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(15/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function s(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return n.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),(0,o.K)(r,"smile"),(0,o.K)(a,"sad"),(0,o.K)(s,"ambivalent"),e.score>3?r(n):e.score<3?a(n):s(n),i},"drawFace"),N=(0,o.K)(function(t,e){let i=e.text.replace(/ /gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),void 0!==e.class&&n.attr("class",e.class);let r=n.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.text(i),n},"drawText"),D=-1,A=(0,o.K)(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),O=function(){function t(t,e,i,r,a,s,o,l){n(e.append("text").attr("x",i+a/2).attr("y",r+s/2+5).style("font-color",l).style("text-anchor","middle").text(t),o)}function e(t,e,i,r,a,s,o,l,c){let{taskFontSize:h,taskFontFamily:d}=l,u=t.split(/ /gi);for(let t=0;t)/).reverse(),r=[],a=i.attr("y"),s=parseFloat(i.attr("dy")),o=i.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",s+"em");for(let s=0;se||" "===t)&&(r.pop(),o.text(r.join(" ").trim()),r=" "===t?[""]:[t],o=i.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))})}(0,o.K)(W,"wrap");var P=(0,o.K)(function(t,e,i,n,r,a=!1){let{theme:s,look:o}=n,c=s?.includes("redux"),h=i%(n?.themeVariables?.THEME_COLOR_LIMIT??12)-1,d=t.append("g");e.section=h,d.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+h);let u=d.append("g"),p=d.append("g"),g=p.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(W,e.width).node().getBBox(),f=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;if(e.height=g.height+1.1*f*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,p.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),c&&p.attr("transform",`translate(${e.width/2}, ${a?e.padding/2+3:e.padding})`),j(u,e,h,r,n),"neo"===o&&(d.attr("data-look","neo"),c)){let e=s.includes("dark"),i=t.node()?.ownerSVGElement??t.node(),n=(0,l.Ltv)(i),r=n.attr("id")??"",a=r?`${r}-drop-shadow`:"drop-shadow";if(n.select(`#${a}`).empty()){let t=n.select("defs");(t.empty()?n.append("defs"):t).append("filter").attr("id",a).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",e?"0.2":"0.06").attr("flood-color",e?"#FFFFFF":"#000000")}}return e},"drawNode"),z=(0,o.K)(function(t,e,i){let n=t.append("g"),r=n.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(W,e.width).node().getBBox(),a=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;return n.remove(),r.height+1.1*a*.5+e.padding},"getVirtualNodeHeight"),j=(0,o.K)(function(t,e,i,n,r){let{theme:a}=r,s=5*!a?.includes("redux"),o=s>0?`M0 ${e.height-5} v${-e.height+10} q0,-${s},${s},-${s} h${e.width-10} q${s},0,${s},${s} v${e.height-5} H0 Z`:`M0 ${e.height-5} v${-(e.height-5)} h${e.width} v${e.height} H0 Z`;t.append("path").attr("id",n+"-node-"+L++).attr("class","node-bkg node-"+e.type).attr("d",o),a?.includes("redux")||t.append("line").attr("class","node-line-"+i).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},"defaultBkg"),F={initGraphics:B,drawNode:P,getVirtualNodeHeight:z},V=(0,o.K)(function(t,e,i,n){let r,o=(0,a.D7)(),{look:c,theme:h,themeVariables:d}=o,{useGradient:u,gradientStart:p,gradientStop:g}=d,f=o.timeline?.leftMargin??50;s.R.debug("timeline",n.db);let y=o.securityLevel;"sandbox"===y&&(r=(0,l.Ltv)("#i"+e));let m=("sandbox"===y?(0,l.Ltv)(r.nodes()[0].contentDocument.body):(0,l.Ltv)("body")).select("#"+e);m.append("g");let b=n.db.getTasks(),x=n.db.getCommonDb().getDiagramTitle();s.R.debug("task",b),F.initGraphics(m,e);let k=n.db.getSections();s.R.debug("sections",k);let _=0,w=0,$=0,v=0,K=50+f,S=50;v=50;let E=0,R=!0;k.forEach(function(t){let e={number:E,descr:t,section:E,width:150,padding:20,maxHeight:_},i=F.getVirtualNodeHeight(m,e,o);s.R.debug("sectionHeight before draw",i),_=Math.max(_,i+20)});let I=0,T=0;for(let[t,e]of(s.R.debug("tasks.length",b.length),b.entries())){let i={number:t,descr:e,section:e.section,width:150,padding:20,maxHeight:w},n=F.getVirtualNodeHeight(m,i,o);s.R.debug("taskHeight before draw",n),w=Math.max(w,n+20),I=Math.max(I,e.events.length);let r=0;for(let t of e.events){let i={descr:t,section:e.section,number:e.section,width:150,padding:20,maxHeight:50};r+=F.getVirtualNodeHeight(m,i,o)}e.events.length>0&&(r+=(e.events.length-1)*10),T=Math.max(T,r)}s.R.debug("maxSectionHeight before draw",_),s.R.debug("maxTaskHeight before draw",w),k&&k.length>0?k.forEach(t=>{let i=b.filter(e=>e.section===t),n={number:E,descr:t,section:E,width:200*Math.max(i.length,1)-50,padding:20,maxHeight:_};s.R.debug("sectionNode",n);let r=m.append("g"),a=F.drawNode(r,n,E,o,e);s.R.debug("sectionNode output",a),r.attr("transform",`translate(${K}, ${v})`),S+=_+50,i.length>0&&G(m,i,E,K,S,w,o,I,T,_,!1,e),K+=200*Math.max(i.length,1),S=v,E++}):(R=!1,G(m,b,E,K,S,w,o,I,T,_,!0,e));let M=m.node().getBBox();if(s.R.debug("bounds",M),x&&m.append("text").text(x).attr("x","neo"===c?2*M.x+f:M.width/2-f).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),$=R?_+w+150:w+100,m.append("g").attr("class","lineWrapper").append("line").attr("x1",f).attr("y1",$).attr("x2",M.width+3*f).attr("y2",$).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${e}-arrowhead)`),"neo"===c&&u&&"neutral"!==h){let t=m.select("defs"),e=(t.empty()?m.append("defs"):t).append("linearGradient").attr("id",m.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");e.append("stop").attr("offset","0%").attr("stop-color",p).attr("stop-opacity",1),e.append("stop").attr("offset","100%").attr("stop-color",g).attr("stop-opacity",1)}(0,a.ot)(void 0,m,o.timeline?.padding??50,o.timeline?.useMaxWidth??!1)},"draw"),G=(0,o.K)(function(t,e,i,n,r,a,o,l,c,h,d,u){for(let l of e){let e={descr:l.task,section:i,number:i,width:150,padding:20,maxHeight:a};s.R.debug("taskNode",e);let h=t.append("g").attr("class","taskWrapper"),p=F.drawNode(h,e,i,o,u).height;if(s.R.debug("taskHeight after draw",p),h.attr("transform",`translate(${n}, ${r})`),a=Math.max(a,p),l.events){let e=t.append("g").attr("class","lineWrapper");r+=100,U(t,l.events,i,n,r,o,u),r-=100,e.append("line").attr("x1",n+95).attr("y1",r+a).attr("x2",n+95).attr("y2",r+a+100+c+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${u}-arrowhead)`).attr("stroke-dasharray","5,5")}n+=200,d&&!o.timeline?.disableMulticolor&&i++}},"drawTasks"),U=(0,o.K)(function(t,e,i,n,r,a,o){let l=0,c=r;for(let c of(r+=100,e)){let e={descr:c,section:i,number:i,width:150,padding:20,maxHeight:50};s.R.debug("eventNode",e);let h=t.append("g").attr("class","eventWrapper"),d=F.drawNode(h,e,i,a,o,!0).height;l+=d,h.attr("transform",`translate(${n}, ${r})`),r=r+10+d}return r=c,l},"drawEvents"),Z={setConf:(0,o.K)(()=>{},"setConf"),draw:V},q=(0,o.K)(function(t,e,i,o){let l=(0,a.D7)(),c=l.timeline?.leftMargin??50;s.R.debug("timeline",o.db);let h=(0,n.D)(e);h.append("g");let d=o.db.getTasks(),u=o.db.getCommonDb().getDiagramTitle();s.R.debug("task",d),F.initGraphics(h);let p=o.db.getSections();s.R.debug("sections",p);let g=0,f=0,y=50,m=230,b=0,x=p&&p.length>0,k=50+c+m,_=Math.max(50,m+360-10);p.forEach(function(t){let e={number:b,descr:t,section:b,width:_,padding:5,maxHeight:g},i=F.getVirtualNodeHeight(h,e,l);s.R.debug("sectionHeight before draw",i),g=Math.max(g,i)});let w=0;for(let[t,e]of(s.R.debug("tasks.length",d.length),d.entries())){let i={number:t,descr:e,section:e.section,width:200,padding:5,maxHeight:f},n=F.getVirtualNodeHeight(h,i,l);s.R.debug("taskHeight before draw",n),f=Math.max(f,n);let r=0;for(let t of e.events){let i={descr:t,section:e.section,number:e.section,width:300,padding:5,maxHeight:50};r+=F.getVirtualNodeHeight(h,i,l)}e.events.length>0&&(r+=(e.events.length-1)*10),w=Math.max(w,r)+0}s.R.debug("maxSectionHeight before draw",g),s.R.debug("maxTaskHeight before draw",f);let $=Math.max(f,w)+30;x?p.forEach(t=>{let e=d.filter(e=>e.section===t),i={number:b,descr:t,section:b,width:_,padding:5,maxHeight:g};s.R.debug("sectionNode",i);let n=h.append("g"),r=F.drawNode(n,i,b,l);s.R.debug("sectionNode output",r);let a=k-m;n.attr("transform",`translate(${a}, ${y})`);let o=y+r.height+20;e.length>0&&J(h,e,b,k,o,f,l,$,!1);let c=e.length,u=r.height+20+$*Math.max(c,1)-60*(c>0);y+=u,b++}):J(h,d,b,k,y,f,l,$,!0);let v=h.node()?.getBBox();if(!v)throw Error("bbox not found");if(s.R.debug("bounds",v),u){if(h.append("text").text(u).attr("x",v.width/2-c).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),!(v=h.node()?.getBBox()))throw Error("bbox not found");s.R.debug("bounds after title",v)}let[K]=(0,r.I5)(l.fontSize),S=h.append("g").attr("class","lineWrapper");S.append("line").attr("x1",k).attr("y1",50-(K??16)*2).attr("x2",k).attr("y2",v.y+v.height+((K??16)*.5+20)).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),S.lower(),(0,a.ot)(void 0,h,l.timeline?.padding??50,l.timeline?.useMaxWidth??!1)},"draw"),J=(0,o.K)(function(t,e,i,n,r,a,o,l,c){for(let h of e){let e={descr:h.task,section:i,number:i,width:200,padding:5,maxHeight:a};s.R.debug("taskNode",e);let d=t.append("g").attr("class","taskWrapper"),u=F.drawNode(d,e,i,o),p=u.height;s.R.debug("taskHeight after draw",p);let g=n-20-u.width;if(d.attr("transform",`translate(${g}, ${r})`),a=Math.max(a,p),h.events&&h.events.length>0){let e=r,a=n+50;Y(t,h.events,i,n,a,e,o)}r+=l,c&&!o.timeline?.disableMulticolor&&i++}},"drawTasks"),Y=(0,o.K)(function(t,e,i,n,r,a,o){let l=a;for(let a of e){let e={descr:a,section:i,number:i,width:300,padding:5,maxHeight:0};s.R.debug("eventNode",e);let c=t.append("g").attr("class","eventWrapper"),h=F.drawNode(c,e,i,o).height;c.attr("transform",`translate(${r}, ${l})`);let d=t.append("g").attr("class","lineWrapper"),u=l+h/2;d.append("line").attr("x1",n).attr("y1",u).attr("x2",r).attr("y2",u).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),l=l+h+10}return l-a},"drawEvents"),X={setConf:(0,o.K)(()=>{},"setConf"),draw:q},Q=(0,o.K)(t=>{let{theme:e}=(0,a.zj)(),i=e?.includes("dark"),n=e?.includes("color"),r=t.svgId?.replace(/^#/,"")??"",s=r?`url(#${r}-drop-shadow)`:t.dropShadow??"none",o="";for(let e=0;e{let e="";for(let e=0;e{let{theme:e}=(0,a.zj)(),i=e?.includes("redux"),n="neutral"===e,r=t.svgId?.replace(/^#/,"")??"",s="";if(t.useGradient&&r&&t.THEME_COLOR_LIMIT&&!n)for(let e=0;e{},"setConf"),draw:(0,o.K)((t,e,i,n)=>"TD"===(n?.db?.getDirection?.()??"LR")?X.draw(t,e,i,n):Z.draw(t,e,i,n),"draw")},parser:u,styles:te}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2499.f2c3570c1a931305.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2499.f2c3570c1a931305.js
deleted file mode 100644
index 4a2a857ff..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2499.f2c3570c1a931305.js
+++ /dev/null
@@ -1,90 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2499],{24002:(e,t,n)=>{n.d(t,{P:()=>r});var i=n(69301),s=n(98999),o=n(91158),r=(0,o.K)((e,t,n,o)=>{e.attr("class",n);let{width:r,height:l,x:h,y:d}=a(e,t);(0,i.a$)(e,l,r,o);let g=c(h,d,r,l,t);e.attr("viewBox",g),s.R.debug(`viewBox configured: ${g} with padding: ${t}`)},"setupViewPortForSVG"),a=(0,o.K)((e,t)=>{let n=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:n.width+2*t,height:n.height+2*t,x:n.x,y:n.y}},"calculateDimensionsWithPadding"),c=(0,o.K)((e,t,n,i,s)=>`${e-s} ${t-s} ${n} ${i}`,"createViewBox")},42499:(e,t,n)=>{let i;n.d(t,{diagram:()=>N});var s=n(74773),o=n(24002),r=n(33807);n(48734),n(11232),n(13031),n(69981),n(5663),n(82142),n(29278),n(13892);var a=n(69301),c=n(98999),l=n(91158);let h={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},d=new Uint8Array(16),g=[];for(let e=0;e<256;++e)g.push((e+256).toString(16).slice(1));let u=function(e,t,n){if(h.randomUUID&&!t&&!e)return h.randomUUID();let s=(e=e||{}).random??e.rng?.()??function(){if(!i){if("undefined"==typeof crypto||!crypto.getRandomValues)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");i=crypto.getRandomValues.bind(crypto)}return i(d)}();if(s.length<16)throw Error("Random bytes length must be >= 16");if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t){if((n=n||0)<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=s[e];return t}return function(e,t=0){return(g[e[t+0]]+g[e[t+1]]+g[e[t+2]]+g[e[t+3]]+"-"+g[e[t+4]]+g[e[t+5]]+"-"+g[e[t+6]]+g[e[t+7]]+"-"+g[e[t+8]]+g[e[t+9]]+"-"+g[e[t+10]]+g[e[t+11]]+g[e[t+12]]+g[e[t+13]]+g[e[t+14]]+g[e[t+15]]).toLowerCase()}(s)};var p=n(54333),y=n(80665),m=n(35177),f=function(){var e=(0,l.K)(function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},"o"),t=[1,4],n=[1,13],i=[1,12],s=[1,15],o=[1,16],r=[1,20],a=[1,19],c=[6,7,8],h=[1,26],d=[1,24],g=[1,25],u=[6,7,11],p=[1,6,13,15,16,19,22],y=[1,33],m=[1,34],f=[1,6,7,11,13,15,16,19,22],_={trace:(0,l.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:(0,l.K)(function(e,t,n,i,s,o,r){var a=o.length-1;switch(s){case 6:case 7:return i;case 8:i.getLogger().trace("Stop NL ");break;case 9:i.getLogger().trace("Stop EOF ");break;case 11:i.getLogger().trace("Stop NL2 ");break;case 12:i.getLogger().trace("Stop EOF2 ");break;case 15:i.getLogger().info("Node: ",o[a].id),i.addNode(o[a-1].length,o[a].id,o[a].descr,o[a].type);break;case 16:i.getLogger().trace("Icon: ",o[a]),i.decorateNode({icon:o[a]});break;case 17:case 21:i.decorateNode({class:o[a]});break;case 18:i.getLogger().trace("SPACELIST");break;case 19:i.getLogger().trace("Node: ",o[a].id),i.addNode(0,o[a].id,o[a].descr,o[a].type);break;case 20:i.decorateNode({icon:o[a]});break;case 25:i.getLogger().trace("node found ..",o[a-2]),this.$={id:o[a-1],descr:o[a-1],type:i.getType(o[a-2],o[a])};break;case 26:this.$={id:o[a],descr:o[a],type:i.nodeType.DEFAULT};break;case 27:i.getLogger().trace("node found ..",o[a-3]),this.$={id:o[a-3],descr:o[a-1],type:i.getType(o[a-2],o[a])}}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:n,7:[1,10],9:9,12:11,13:i,14:14,15:s,16:o,17:17,18:18,19:r,22:a},e(c,[2,3]),{1:[2,2]},e(c,[2,4]),e(c,[2,5]),{1:[2,6],6:n,12:21,13:i,14:14,15:s,16:o,17:17,18:18,19:r,22:a},{6:n,9:22,12:11,13:i,14:14,15:s,16:o,17:17,18:18,19:r,22:a},{6:h,7:d,10:23,11:g},e(u,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:r,22:a}),e(u,[2,18]),e(u,[2,19]),e(u,[2,20]),e(u,[2,21]),e(u,[2,23]),e(u,[2,24]),e(u,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:d,10:32,11:g},{1:[2,7],6:n,12:21,13:i,14:14,15:s,16:o,17:17,18:18,19:r,22:a},e(p,[2,14],{7:y,11:m}),e(f,[2,8]),e(f,[2,9]),e(f,[2,10]),e(u,[2,15]),e(u,[2,16]),e(u,[2,17]),{20:[1,35]},{21:[1,36]},e(p,[2,13],{7:y,11:m}),e(f,[2,11]),e(f,[2,12]),{21:[1,37]},e(u,[2,25]),e(u,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,l.K)(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},"parseError"),parse:(0,l.K)(function(e){var t=this,n=[0],i=[],s=[null],o=[],r=this.table,a="",c=0,h=0,d=0,g=o.slice.call(arguments,1),u=Object.create(this.lexer),p={};for(var y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,y)&&(p[y]=this.yy[y]);u.setInput(e,p),p.lexer=u,p.parser=this,void 0===u.yylloc&&(u.yylloc={});var m=u.yylloc;o.push(m);var f=u.options&&u.options.ranges;function _(){var e;return"number"!=typeof(e=i.pop()||u.lex()||1)&&(e instanceof Array&&(e=(i=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof p.parseError?this.parseError=p.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K)(function(e){n.length=n.length-2*e,s.length=s.length-e,o.length=o.length-e},"popStack"),(0,l.K)(_,"lex");for(var b,E,k,S,N,x,L,D,$,I={};;){if(k=n[n.length-1],this.defaultActions[k]?S=this.defaultActions[k]:(null==b&&(b=_()),S=r[k]&&r[k][b]),void 0===S||!S.length||!S[0]){var v="";for(x in $=[],r[k])this.terminals_[x]&&x>2&&$.push("'"+this.terminals_[x]+"'");v=u.showPosition?"Parse error on line "+(c+1)+":\n"+u.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(v,{text:u.match,token:this.terminals_[b]||b,line:u.yylineno,loc:m,expected:$})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+k+", token: "+b);switch(S[0]){case 1:n.push(b),s.push(u.yytext),o.push(u.yylloc),n.push(S[1]),b=null,E?(b=E,E=null):(h=u.yyleng,a=u.yytext,c=u.yylineno,m=u.yylloc,d>0&&d--);break;case 2:if(L=this.productions_[S[1]][1],I.$=s[s.length-L],I._$={first_line:o[o.length-(L||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(L||1)].first_column,last_column:o[o.length-1].last_column},f&&(I._$.range=[o[o.length-(L||1)].range[0],o[o.length-1].range[1]]),void 0!==(N=this.performAction.apply(I,[a,h,c,p,S[1],s,o].concat(g))))return N;L&&(n=n.slice(0,-1*L*2),s=s.slice(0,-1*L),o=o.slice(0,-1*L)),n.push(this.productions_[S[1]][0]),s.push(I.$),o.push(I._$),D=r[n[n.length-2]][n[n.length-1]],n.push(D);break;case 3:return!0}}return!0},"parse")};function b(){this.yy={}}return _.lexer={EOF:1,parseError:(0,l.K)(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},"parseError"),setInput:(0,l.K)(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,l.K)(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},"input"),unput:(0,l.K)(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K)(function(){return this._more=!0,this},"more"),reject:(0,l.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,l.K)(function(e){this.unput(this.match.slice(e))},"less"),pastInput:(0,l.K)(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K)(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K)(function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},"showPosition"),test_match:(0,l.K)(function(e,t){var n,i,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(i=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack)for(var o in s)this[o]=s[o];return!1},"test_match"),next:(0,l.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,n,i,s=this._currentRules(),o=0;ot[0].length)){if(t=n,i=o,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,s[o])))return e;if(!this._backtrack)return!1;t=!1;continue}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,s[i]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,l.K)(function(){var e=this.next();return e||this.lex()},"lex"),begin:(0,l.K)(function(e){this.conditionStack.push(e)},"begin"),popState:(0,l.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,l.K)(function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},"topState"),pushState:(0,l.K)(function(e){this.begin(e)},"pushState"),stateStackSize:(0,l.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,l.K)(function(e,t,n,i){switch(n){case 0:return e.getLogger().trace("Found comment",t.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:case 26:this.popState();break;case 5:e.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return e.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:e.getLogger().trace("end icon"),this.popState();break;case 10:return e.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return e.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return e.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return e.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 24:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 27:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 30:case 33:case 34:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 31:case 32:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 35:case 36:return e.getLogger().trace("Long description:",t.yytext),20}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}},(0,l.K)(b,"Parser"),b.prototype=_,_.Parser=b,new b}();f.parser=f;var _={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},b=class{constructor(){this.nodes=[],this.count=0,this.elements={},this.getLogger=this.getLogger.bind(this),this.nodeType=_,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{(0,l.K)(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(e){for(let t=this.nodes.length-1;t>=0;t--)if(this.nodes[t].level0?this.nodes[0]:null}addNode(e,t,n,i){c.R.info("addNode",e,t,n,i);let s=!1;0===this.nodes.length?(this.baseLevel=e,e=0,s=!0):void 0!==this.baseLevel&&(e-=this.baseLevel,s=!1);let o=(0,a.D7)(),r=o.mindmap?.padding??a.UI.mindmap.padding;switch(i){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:r*=2}let l={id:this.count++,nodeId:(0,a.jZ)(t,o),level:e,descr:(0,a.jZ)(n,o),type:i,children:[],width:o.mindmap?.maxNodeWidth??a.UI.mindmap.maxNodeWidth,padding:r,isRoot:s},h=this.getParent(e);if(h)h.children.push(l),this.nodes.push(l);else if(s)this.nodes.push(l);else throw Error(`There can be only one root. No parent could be found for ("${l.descr}")`)}getType(e,t){switch(c.R.debug("In get type",e,t),e){case"[":return this.nodeType.RECT;case"(":return")"===t?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(e,t){this.elements[e]=t}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;let t=(0,a.D7)(),n=this.nodes[this.nodes.length-1];e.icon&&(n.icon=(0,a.jZ)(e.icon,t)),e.class&&(n.class=(0,a.jZ)(e.class,t))}type2Str(e){switch(e){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(e,t){if(0===e.level?e.section=void 0:e.section=t,e.children)for(let[n,i]of e.children.entries()){let s=0===e.level?n%11:t;this.assignSections(i,s)}}flattenNodes(e,t){let n=(0,a.D7)(),i=["mindmap-node"];!0===e.isRoot?i.push("section-root","section--1"):void 0!==e.section&&i.push(`section-${e.section}`),e.class&&i.push(e.class);let s=i.join(" "),o=(0,l.K)(e=>{let t=(n.theme?.toLowerCase()??"").includes("redux");switch(e){case _.CIRCLE:return"mindmapCircle";case _.RECT:return"rect";case _.ROUNDED_RECT:return"rounded";case _.CLOUD:return"cloud";case _.BANG:return"bang";case _.HEXAGON:return"hexagon";case _.DEFAULT:return t?"rounded":"defaultMindmapNode";case _.NO_BORDER:default:return"rect"}},"getShapeFromType"),r={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,labelType:"markdown",isGroup:!1,shape:o(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:s,cssStyles:[],look:n.look,icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(t.push(r),e.children)for(let n of e.children)this.flattenNodes(n,t)}generateEdges(e,t){if(!e.children)return;let n=(0,a.D7)();for(let i of e.children){let s="edge";void 0!==i.section&&(s+=` section-edge-${i.section}`);let o=e.level+1;s+=` edge-depth-${o}`;let r={id:`edge_${e.id}_${i.id}`,start:e.id.toString(),end:i.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:n.look,classes:s,depth:e.level,section:i.section};t.push(r),this.generateEdges(i,t)}}getData(){let e=this.getMindmap(),t=(0,a.D7)();if(void 0!==(0,a.TM)().layout||(t.layout="cose-bilkent"),!e)return{nodes:[],edges:[],config:t};c.R.debug("getData: mindmapRoot",e,t),this.assignSections(e);let n=[],i=[];this.flattenNodes(e,n),this.generateEdges(e,i),c.R.debug(`getData: processed ${n.length} nodes and ${i.length} edges`);let s=new Map;for(let e of n)s.set(e.id,{shape:e.shape,width:e.width,height:e.height,padding:e.padding});return{nodes:n,edges:i,config:t,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(s),type:"mindmap",diagramId:"mindmap-"+u()}}getLogger(){return c.R}},E=(0,l.K)(async(e,t,n,i)=>{c.R.debug("Rendering mindmap diagram\n"+e);let l=i.db,h=l.getData(),d=(0,s.A)(t,h.config.securityLevel);if(h.type=i.type,h.layoutAlgorithm=(0,r.q7)(h.config.layout,{fallback:"cose-bilkent"}),h.diagramId=t,!l.getMindmap())return;h.nodes.forEach(e=>{"rounded"===e.shape?(e.radius=15,e.taper=15,e.stroke="none",e.width=0,e.padding=15):"circle"===e.shape?e.padding=10:"rect"===e.shape?(e.width=0,e.padding=10):"hexagon"===e.shape&&(e.width=0,e.height=0)}),await (0,r.XX)(h,d);let{themeVariables:g}=(0,a.zj)(),{useGradient:u,gradientStart:p,gradientStop:y}=g;if(u&&p&&y){let e=d.attr("id"),t=d.append("defs").append("linearGradient").attr("id",`${e}-gradient`).attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");t.append("stop").attr("offset","0%").attr("stop-color",p).attr("stop-opacity",1),t.append("stop").attr("offset","100%").attr("stop-color",y).attr("stop-opacity",1)}(0,o.P)(d,h.config.mindmap?.padding??a.UI.mindmap.padding,"mindmapDiagram",h.config.mindmap?.useMaxWidth??a.UI.mindmap.useMaxWidth)},"draw"),k=(0,l.K)(e=>{let{theme:t,look:n}=e,i="";for(let t=0;t{let i="";for(let s=0;s{let{theme:t}=e,n=e.svgId,i=e.dropShadow?e.dropShadow.replace("url(#drop-shadow)",`url(${n}-drop-shadow)`):"none";return`
- .edge {
- stroke-width: 3;
- }
- ${k(e)}
- .section-root rect, .section-root path, .section-root circle, .section-root polygon {
- fill: ${e.git0};
- }
- .section-root text {
- fill: ${e.gitBranchLabel0};
- }
- .section-root span {
- color: ${t?.includes("redux")?e.nodeBorder:e.gitBranchLabel0};
- }
- .icon-container {
- height:100%;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .edge {
- fill: none;
- }
- .mindmap-node-label {
- dy: 1em;
- alignment-baseline: middle;
- text-anchor: middle;
- dominant-baseline: middle;
- text-align: center;
- }
- [data-look="neo"].mindmap-node {
- filter: ${i};
- }
- [data-look="neo"].mindmap-node.section-root rect, [data-look="neo"].mindmap-node.section-root path, [data-look="neo"].mindmap-node.section-root circle, [data-look="neo"].mindmap-node.section-root polygon {
- fill: ${t?.includes("redux")?e.mainBkg:e.git0};
- }
- [data-look="neo"].mindmap-node.section-root .text-inner-tspan {
- fill: ${t?.includes("redux")?e.nodeBorder:e["cScaleLabel"+ +("neutral"===t)]};
- }
- ${e.useGradient&&n&&e.mainBkg?S(e.THEME_COLOR_LIMIT,n,e.mainBkg):""}
-`},"getStyles")}},74773:(e,t,n)=>{n.d(t,{A:()=>o});var i=n(91158),s=n(70668),o=(0,i.K)((e,t)=>{let n;return"sandbox"===t&&(n=(0,s.Ltv)("#i"+e)),("sandbox"===t?(0,s.Ltv)(n.nodes()[0].contentDocument.body):(0,s.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2557.c92b26cc451ca01e.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2557.c92b26cc451ca01e.js
deleted file mode 100644
index 2bc1b4c76..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2557.c92b26cc451ca01e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2557],{2557:(e,s,c)=>{c.d(s,{createEventModelingServices:()=>a.g});var a=c(71022);c(9448)}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/270.7aa60507da3c347a.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/270.7aa60507da3c347a.js
deleted file mode 100644
index 14bffa146..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/270.7aa60507da3c347a.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[270],{87889:t=>{!function(){var r={675:function(t,r){"use strict";r.byteLength=function(t){var r=s(t),e=r[0],n=r[1];return(e+n)*3/4-n},r.toByteArray=function(t){var r,e,o=s(t),f=o[0],u=o[1],h=new i((f+u)*3/4-u),a=0,p=u>0?f-4:f;for(e=0;e>16&255,h[a++]=r>>8&255,h[a++]=255&r;return 2===u&&(r=n[t.charCodeAt(e)]<<2|n[t.charCodeAt(e+1)]>>4,h[a++]=255&r),1===u&&(r=n[t.charCodeAt(e)]<<10|n[t.charCodeAt(e+1)]<<4|n[t.charCodeAt(e+2)]>>2,h[a++]=r>>8&255,h[a++]=255&r),h},r.fromByteArray=function(t){for(var r,n=t.length,i=n%3,o=[],f=0,u=n-i;f>18&63]+e[i>>12&63]+e[i>>6&63]+e[63&i]);return o.join("")}(t,f,f+16383>u?u:f+16383));return 1===i?o.push(e[(r=t[n-1])>>2]+e[r<<4&63]+"=="):2===i&&o.push(e[(r=(t[n-2]<<8)+t[n-1])>>10]+e[r>>4&63]+e[r<<2&63]+"="),o.join("")};for(var e=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,u=o.length;f0)throw Error("Invalid string. Length must be a multiple of 4");var e=t.indexOf("=");-1===e&&(e=r);var n=e===r?0:4-e%4;return[e,n]}n[45]=62,n[95]=63},72:function(t,r,e){"use strict";var n=e(675),i=e(783),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function f(t){if(t>0x7fffffff)throw RangeError('The value "'+t+'" is invalid for option "size"');var r=new Uint8Array(t);return Object.setPrototypeOf(r,u.prototype),r}function u(t,r,e){if("number"==typeof t){if("string"==typeof r)throw TypeError('The "string" argument must be of type string. Received type number');return a(t)}return s(t,r,e)}function s(t,r,e){if("string"==typeof t){var n=t,i=r;if(("string"!=typeof i||""===i)&&(i="utf8"),!u.isEncoding(i))throw TypeError("Unknown encoding: "+i);var o=0|l(n,i),s=f(o),h=s.write(n,i);return h!==o&&(s=s.slice(0,h)),s}if(ArrayBuffer.isView(t))return p(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(C(t,ArrayBuffer)||t&&C(t.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(C(t,SharedArrayBuffer)||t&&C(t.buffer,SharedArrayBuffer)))return function(t,r,e){var n;if(r<0||t.byteLength=0x7fffffff)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function l(t,r){if(u.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||C(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var e=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===e)return 0;for(var i=!1;;)switch(r){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":return x(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return I(t).length;default:if(i)return n?-1:x(t).length;r=(""+r).toLowerCase(),i=!0}}function y(t,r,e){var i,o,f,u=!1;if((void 0===r||r<0)&&(r=0),r>this.length||((void 0===e||e>this.length)&&(e=this.length),e<=0||(e>>>=0)<=(r>>>=0)))return"";for(t||(t="utf8");;)switch(t){case"hex":return function(t,r,e){var n=t.length;(!r||r<0)&&(r=0),(!e||e<0||e>n)&&(e=n);for(var i="",o=r;o0x7fffffff?e=0x7fffffff:e<-0x80000000&&(e=-0x80000000),(o=e*=1)!=o&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length)if(i)return -1;else e=t.length-1;else if(e<0)if(!i)return -1;else e=0;if("string"==typeof r&&(r=u.from(r,n)),u.isBuffer(r))return 0===r.length?-1:v(t,r,e,n,i);if("number"==typeof r){if(r&=255,"function"==typeof Uint8Array.prototype.indexOf)if(i)return Uint8Array.prototype.indexOf.call(t,r,e);else return Uint8Array.prototype.lastIndexOf.call(t,r,e);return v(t,[r],e,n,i)}throw TypeError("val must be string, number or Buffer")}function v(t,r,e,n,i){var o,f=1,u=t.length,s=r.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||r.length<2)return -1;f=2,u/=2,s/=2,e/=2}function h(t,r){return 1===f?t[r]:t.readUInt16BE(r*f)}if(i){var a=-1;for(o=e;ou&&(e=u-s),o=e;o>=0;o--){for(var p=!0,c=0;ce&&(t+=" ... "),""},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(t,r,e,n,i){if(C(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(t))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw RangeError("out of range index");if(n>=i&&r>=e)return 0;if(n>=i)return -1;if(r>=e)return 1;if(r>>>=0,e>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,f=e-r,s=Math.min(o,f),h=this.slice(n,i),a=t.slice(r,e),p=0;p239?4:h>223?3:h>191?2:1;if(i+p<=e)switch(p){case 1:h<128&&(a=h);break;case 2:(192&(o=t[i+1]))==128&&(s=(31&h)<<6|63&o)>127&&(a=s);break;case 3:o=t[i+1],f=t[i+2],(192&o)==128&&(192&f)==128&&(s=(15&h)<<12|(63&o)<<6|63&f)>2047&&(s<55296||s>57343)&&(a=s);break;case 4:o=t[i+1],f=t[i+2],u=t[i+3],(192&o)==128&&(192&f)==128&&(192&u)==128&&(s=(15&h)<<18|(63&o)<<12|(63&f)<<6|63&u)>65535&&s<1114112&&(a=s)}null===a?(a=65533,p=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=p}var c=n,l=c.length;if(l<=4096)return String.fromCharCode.apply(String,c);for(var y="",g=0;ge)throw RangeError("Trying to access beyond buffer length")}function m(t,r,e,n,i,o){if(!u.isBuffer(t))throw TypeError('"buffer" argument must be a Buffer instance');if(r>i||rt.length)throw RangeError("Index out of range")}function E(t,r,e,n,i,o){if(e+n>t.length||e<0)throw RangeError("Index out of range")}function A(t,r,e,n,o){return r*=1,e>>>=0,o||E(t,r,e,4,34028234663852886e22,-34028234663852886e22),i.write(t,r,e,n,23,4),e+4}function B(t,r,e,n,o){return r*=1,e>>>=0,o||E(t,r,e,8,17976931348623157e292,-17976931348623157e292),i.write(t,r,e,n,52,8),e+8}u.prototype.write=function(t,r,e,n){if(void 0===r)n="utf8",e=this.length,r=0;else if(void 0===e&&"string"==typeof r)n=r,e=this.length,r=0;else if(isFinite(r))r>>>=0,isFinite(e)?(e>>>=0,void 0===n&&(n="utf8")):(n=e,e=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var i,o,f,u,s,h,a,p,c=this.length-r;if((void 0===e||e>c)&&(e=c),t.length>0&&(e<0||r<0)||r>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var l=!1;;)switch(n){case"hex":return function(t,r,e,n){e=Number(e)||0;var i=t.length-e;n?(n=Number(n))>i&&(n=i):n=i;var o=r.length;n>o/2&&(n=o/2);for(var f=0;f>8,i.push(e%256),i.push(n);return i}(t,this.length-a),this,a,p);default:if(l)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),l=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},u.prototype.slice=function(t,r){var e=this.length;t=~~t,r=void 0===r?e:~~r,t<0?(t+=e)<0&&(t=0):t>e&&(t=e),r<0?(r+=e)<0&&(r=0):r>e&&(r=e),r>>=0,r>>>=0,e||w(t,r,this.length);for(var n=this[t],i=1,o=0;++o>>=0,r>>>=0,e||w(t,r,this.length);for(var n=this[t+--r],i=1;r>0&&(i*=256);)n+=this[t+--r]*i;return n},u.prototype.readUInt8=function(t,r){return t>>>=0,r||w(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,r){return t>>>=0,r||w(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,r){return t>>>=0,r||w(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,r){return t>>>=0,r||w(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+0x1000000*this[t+3]},u.prototype.readUInt32BE=function(t,r){return t>>>=0,r||w(t,4,this.length),0x1000000*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,r,e){t>>>=0,r>>>=0,e||w(t,r,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*r)),n},u.prototype.readIntBE=function(t,r,e){t>>>=0,r>>>=0,e||w(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},u.prototype.readInt8=function(t,r){return(t>>>=0,r||w(t,1,this.length),128&this[t])?-((255-this[t]+1)*1):this[t]},u.prototype.readInt16LE=function(t,r){t>>>=0,r||w(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?0xffff0000|e:e},u.prototype.readInt16BE=function(t,r){t>>>=0,r||w(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?0xffff0000|e:e},u.prototype.readInt32LE=function(t,r){return t>>>=0,r||w(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,r){return t>>>=0,r||w(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,r){return t>>>=0,r||w(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,r){return t>>>=0,r||w(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,r){return t>>>=0,r||w(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,r){return t>>>=0,r||w(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,r,e,n){if(t*=1,r>>>=0,e>>>=0,!n){var i=Math.pow(2,8*e)-1;m(this,t,r,e,i,0)}var o=1,f=0;for(this[r]=255&t;++f>>=0,e>>>=0,!n){var i=Math.pow(2,8*e)-1;m(this,t,r,e,i,0)}var o=e-1,f=1;for(this[r+o]=255&t;--o>=0&&(f*=256);)this[r+o]=t/f&255;return r+e},u.prototype.writeUInt8=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,1,255,0),this[r]=255&t,r+1},u.prototype.writeUInt16LE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,2,65535,0),this[r]=255&t,this[r+1]=t>>>8,r+2},u.prototype.writeUInt16BE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,2,65535,0),this[r]=t>>>8,this[r+1]=255&t,r+2},u.prototype.writeUInt32LE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,4,0xffffffff,0),this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t,r+4},u.prototype.writeUInt32BE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,4,0xffffffff,0),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t,r+4},u.prototype.writeIntLE=function(t,r,e,n){if(t*=1,r>>>=0,!n){var i=Math.pow(2,8*e-1);m(this,t,r,e,i-1,-i)}var o=0,f=1,u=0;for(this[r]=255&t;++o>>=0,!n){var i=Math.pow(2,8*e-1);m(this,t,r,e,i-1,-i)}var o=e-1,f=1,u=0;for(this[r+o]=255&t;--o>=0&&(f*=256);)t<0&&0===u&&0!==this[r+o+1]&&(u=1),this[r+o]=(t/f|0)-u&255;return r+e},u.prototype.writeInt8=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,1,127,-128),t<0&&(t=255+t+1),this[r]=255&t,r+1},u.prototype.writeInt16LE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,2,32767,-32768),this[r]=255&t,this[r+1]=t>>>8,r+2},u.prototype.writeInt16BE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,2,32767,-32768),this[r]=t>>>8,this[r+1]=255&t,r+2},u.prototype.writeInt32LE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,4,0x7fffffff,-0x80000000),this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24,r+4},u.prototype.writeInt32BE=function(t,r,e){return t*=1,r>>>=0,e||m(this,t,r,4,0x7fffffff,-0x80000000),t<0&&(t=0xffffffff+t+1),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t,r+4},u.prototype.writeFloatLE=function(t,r,e){return A(this,t,r,!0,e)},u.prototype.writeFloatBE=function(t,r,e){return A(this,t,r,!1,e)},u.prototype.writeDoubleLE=function(t,r,e){return B(this,t,r,!0,e)},u.prototype.writeDoubleBE=function(t,r,e){return B(this,t,r,!1,e)},u.prototype.copy=function(t,r,e,n){if(!u.isBuffer(t))throw TypeError("argument should be a Buffer");if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-r=0;--o)t[o+r]=this[o+e];else Uint8Array.prototype.set.call(t,this.subarray(e,n),r);return i},u.prototype.fill=function(t,r,e,n){if("string"==typeof t){if("string"==typeof r?(n=r,r=0,e=this.length):"string"==typeof e&&(n=e,e=this.length),void 0!==n&&"string"!=typeof n)throw TypeError("encoding must be a string");if("string"==typeof n&&!u.isEncoding(n))throw TypeError("Unknown encoding: "+n);if(1===t.length){var i,o=t.charCodeAt(0);("utf8"===n&&o<128||"latin1"===n)&&(t=o)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(r<0||this.length>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),"number"==typeof t)for(i=r;i55295&&e<57344){if(!i){if(e>56319||f+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=(i-55296<<10|e-56320)+65536}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e)}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128)}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128)}else if(e<1114112){if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}else throw Error("Invalid code point")}return o}function T(t){for(var r=[],e=0;e=r.length)&&!(i>=t.length);++i)r[i+e]=t[i];return i}function C(t,r){return t instanceof r||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===r.name}var L=function(){for(var t="0123456789abcdef",r=Array(256),e=0;e<16;++e)for(var n=16*e,i=0;i<16;++i)r[n+i]=t[e]+t[i];return r}()},783:function(t,r){r.read=function(t,r,e,n,i){var o,f,u=8*i-n-1,s=(1<>1,a=-7,p=e?i-1:0,c=e?-1:1,l=t[r+p];for(p+=c,o=l&(1<<-a)-1,l>>=-a,a+=u;a>0;o=256*o+t[r+p],p+=c,a-=8);for(f=o&(1<<-a)-1,o>>=-a,a+=n;a>0;f=256*f+t[r+p],p+=c,a-=8);if(0===o)o=1-h;else{if(o===s)return f?NaN:1/0*(l?-1:1);f+=Math.pow(2,n),o-=h}return(l?-1:1)*f*Math.pow(2,o-n)},r.write=function(t,r,e,n,i,o){var f,u,s,h=8*o-i-1,a=(1<>1,c=5960464477539062e-23*(23===i),l=n?0:o-1,y=n?1:-1,g=+(r<0||0===r&&1/r<0);for(isNaN(r=Math.abs(r))||r===1/0?(u=+!!isNaN(r),f=a):(f=Math.floor(Math.log(r)/Math.LN2),r*(s=Math.pow(2,-f))<1&&(f--,s*=2),f+p>=1?r+=c/s:r+=c*Math.pow(2,1-p),r*s>=2&&(f++,s/=2),f+p>=a?(u=0,f=a):f+p>=1?(u=(r*s-1)*Math.pow(2,i),f+=p):(u=r*Math.pow(2,p-1)*Math.pow(2,i),f=0));i>=8;t[e+l]=255&u,l+=y,u/=256,i-=8);for(f=f<0;t[e+l]=255&f,l+=y,f/=256,h-=8);t[e+l-y]|=128*g}}},e={};function n(t){var i=e[t];if(void 0!==i)return i.exports;var o=e[t]={exports:{}},f=!0;try{r[t](o,o.exports,n),f=!1}finally{f&&delete e[t]}return o.exports}n.ab="//",t.exports=n(72)}()}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2829.a98d8ca3d080dd49.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2829.a98d8ca3d080dd49.js
deleted file mode 100644
index 29f6a6b88..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2829.a98d8ca3d080dd49.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2829],{82829:(t,e,a)=>{a.d(e,{diagram:()=>E});var r=a(84492),i=a(94191),n=a(13892),l=a(69301),s=a(98999),o=a(91158),c=a(89321),d={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},g={axes:[],curves:[],options:d},u=structuredClone(g),p=l.UI.radar,x=(0,o.K)(()=>(0,n.$t)({...p,...(0,l.zj)().radar}),"getConfig"),h=(0,o.K)(()=>u.axes,"getAxes"),m=(0,o.K)(()=>u.curves,"getCurves"),$=(0,o.K)(()=>u.options,"getOptions"),f=(0,o.K)(t=>{u.axes=t.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),y=(0,o.K)(t=>{u.curves=t.map(t=>({name:t.name,label:t.label??t.name,entries:v(t.entries)}))},"setCurves"),v=(0,o.K)(t=>{if(void 0==t[0].axis)return t.map(t=>t.value);let e=h();if(0===e.length)throw Error("Axes must be populated before curves for reference entries");return e.map(e=>{let a=t.find(t=>t.axis?.$refText===e.name);if(void 0===a)throw Error("Missing entry for axis "+e.label);return a.value})},"computeCurveEntries"),w={getAxes:h,getCurves:m,getOptions:$,setAxes:f,setCurves:y,setOptions:(0,o.K)(t=>{let e=t.reduce((t,e)=>(t[e.name]=e,t),{});u.options={showLegend:e.showLegend?.value??d.showLegend,ticks:e.ticks?.value??d.ticks,max:e.max?.value??d.max,min:e.min?.value??d.min,graticule:e.graticule?.value??d.graticule},u.options.ticks>32&&(s.R.warn(`Radar diagram ticks (${u.options.ticks}) exceeds maximum allowed (32). Using 32 instead.`),u.options.ticks=32)},"setOptions"),getConfig:x,clear:(0,o.K)(()=>{(0,l.IU)(),u=structuredClone(g)},"clear"),setAccTitle:l.SV,getAccTitle:l.iN,setDiagramTitle:l.ke,getDiagramTitle:l.ab,getAccDescription:l.m7,setAccDescription:l.EI},b=(0,o.K)(t=>{(0,r.S)(t,w);let{axes:e,curves:a,options:i}=t;w.setAxes(e),w.setCurves(a),w.setOptions(i)},"populate"),C={parse:(0,o.K)(async t=>{let e=await (0,c.qg)("radar",t);s.R.debug(e),b(e)},"parse")},k=(0,o.K)((t,e,a,r)=>{let n=r.db,l=n.getAxes(),s=n.getCurves(),o=n.getOptions(),c=n.getConfig(),d=n.getDiagramTitle(),g=K((0,i.D)(e),c),u=o.max??Math.max(...s.map(t=>Math.max(...t.entries))),p=o.min,x=Math.min(c.width,c.height)/2;M(g,l,x,o.ticks,o.graticule),L(g,l,x,c),T(g,l,s,p,u,o.graticule,c),I(g,s,o.showLegend,c),g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),K=(0,o.K)((t,e)=>{let a=e.width+e.marginLeft+e.marginRight,r=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return(0,l.a$)(t,r,a,e.useMaxWidth??!0),t.attr("viewBox",`0 0 ${a} ${r}`).attr("overflow","visible"),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),M=(0,o.K)((t,e,a,r,i)=>{if("circle"===i)for(let e=0;e{let a=2*e*Math.PI/i-Math.PI/2,r=l*Math.cos(a),n=l*Math.sin(a);return`${r},${n}`}).join(" ");t.append("polygon").attr("points",s).attr("class","radarGraticule")}}},"drawGraticule"),L=(0,o.K)((t,e,a,r)=>{let i=e.length;for(let n=0;n.01?"start":o<-.01?"end":"middle",g=c>.01?"hanging":c<-.01?"auto":"central";t.append("text").text(l).attr("x",a*r.axisLabelFactor*o+4*o).attr("y",a*r.axisLabelFactor*c+4*c).attr("text-anchor",d).attr("dominant-baseline",g).attr("class","radarAxisLabel")}},"drawAxes");function T(t,e,a,r,i,n,l){let s=e.length,o=Math.min(l.width,l.height)/2;a.forEach((e,a)=>{if(e.entries.length!==s)return;let c=e.entries.map((t,e)=>{let a=2*Math.PI*e/s-Math.PI/2,n=A(t,r,i,o);return{x:n*Math.cos(a),y:n*Math.sin(a)}});"circle"===n?t.append("path").attr("d",S(c,l.curveTension)).attr("class",`radarCurve-${a}`):"polygon"===n&&t.append("polygon").attr("points",c.map(t=>`${t.x},${t.y}`).join(" ")).attr("class",`radarCurve-${a}`)})}function A(t,e,a,r){return r*(Math.min(Math.max(t,e),a)-e)/(a-e)}function S(t,e){let a=t.length,r=`M${t[0].x},${t[0].y}`;for(let i=0;i{let r=t.append("g").attr("transform",`translate(${i}, ${n+20*a})`);r.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${a}`),r.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(e.label)})}(0,o.K)(T,"drawCurves"),(0,o.K)(A,"relativeRadius"),(0,o.K)(S,"closedRoundCurve"),(0,o.K)(I,"drawLegend");var D=(0,o.K)((t,e)=>{let a="";for(let r=0;r{let e=(0,l.P$)(),a=(0,l.zj)(),r=(0,n.$t)(e,a.themeVariables),i=(0,n.$t)(r.radar,t);return{themeVariables:r,radarOptions:i}},"buildRadarStyleOptions"),E={parser:C,db:w,renderer:{draw:k},styles:(0,o.K)(({radar:t}={})=>{let{themeVariables:e,radarOptions:a}=O(t);return`
- .radarTitle {
- font-size: ${e.fontSize};
- color: ${e.titleColor};
- dominant-baseline: hanging;
- text-anchor: middle;
- }
- .radarAxisLine {
- stroke: ${a.axisColor};
- stroke-width: ${a.axisStrokeWidth};
- }
- .radarAxisLabel {
- font-size: ${a.axisLabelFontSize}px;
- color: ${a.axisColor};
- }
- .radarGraticule {
- fill: ${a.graticuleColor};
- fill-opacity: ${a.graticuleOpacity};
- stroke: ${a.graticuleColor};
- stroke-width: ${a.graticuleStrokeWidth};
- }
- .radarLegendText {
- text-anchor: start;
- font-size: ${a.legendFontSize}px;
- dominant-baseline: hanging;
- }
- ${D(e,a)}
- `},"styles")}},84492:(t,e,a)=>{function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(91158).K)(r,"populateCommonDb")}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2918.39b223fabcb9cb5e.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2918.39b223fabcb9cb5e.js
deleted file mode 100644
index 42b6d21fa..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/2918.39b223fabcb9cb5e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2918],{92918:(r,e,s)=>{s.d(e,{diagram:()=>l});var a=s(48771);s(3392),s(74773),s(24002),s(33807),s(33332),s(48734),s(11232),s(13031),s(69981),s(5663),s(82142),s(29278),s(13892),s(69301),s(98999);var t=s(91158),l={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K)(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/3550.c14b56f51871ec25.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/3550.c14b56f51871ec25.js
deleted file mode 100644
index f53fd5ec1..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/3550.c14b56f51871ec25.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3550],{63550:(e,t,a)=>{a.d(t,{diagram:()=>v});var i=a(84492),l=a(94191),r=a(13892),n=a(69301),s=a(98999),o=a(91158),c=a(89321),d=a(70668),p=n.UI.pie,h={sections:new Map,showData:!1,config:p},g=h.sections,u=h.showData,f=structuredClone(p),m=(0,o.K)(()=>structuredClone(f),"getConfig"),$=(0,o.K)(()=>{g=new Map,u=h.showData,(0,n.IU)()},"clear"),x=(0,o.K)(({label:e,value:t})=>{if(t<0)throw Error(`"${e}" has invalid value: ${t}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);g.has(e)||(g.set(e,t),s.R.debug(`added new section: ${e}, with value: ${t}`))},"addSection"),w=(0,o.K)(()=>g,"getSections"),S=(0,o.K)(e=>{u=e},"setShowData"),y=(0,o.K)(()=>u,"getShowData"),b={getConfig:m,clear:$,setDiagramTitle:n.ke,getDiagramTitle:n.ab,setAccTitle:n.SV,getAccTitle:n.iN,setAccDescription:n.EI,getAccDescription:n.m7,addSection:x,getSections:w,setShowData:S,getShowData:y},C=(0,o.K)((e,t)=>{(0,i.S)(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},"populateDb"),D={parse:(0,o.K)(async e=>{let t=await (0,c.qg)("pie",e);s.R.debug(t),C(t,b)},"parse")},T=(0,o.K)(e=>`
- .pieCircle{
- stroke: ${e.pieStrokeColor};
- stroke-width : ${e.pieStrokeWidth};
- opacity : ${e.pieOpacity};
- }
- .pieCircle.highlighted{
- scale: 1.05;
- opacity: 1;
- }
- .pieCircle.highlightedOnHover:hover{
- transition-duration: 250ms;
- scale: 1.05;
- opacity: 1;
- }
- .pieOuterCircle{
- stroke: ${e.pieOuterStrokeColor};
- stroke-width: ${e.pieOuterStrokeWidth};
- fill: none;
- }
- .pieTitleText {
- text-anchor: middle;
- font-size: ${e.pieTitleTextSize};
- fill: ${e.pieTitleTextColor};
- font-family: ${e.fontFamily};
- }
- .slice {
- font-family: ${e.fontFamily};
- fill: ${e.pieSectionTextColor};
- font-size:${e.pieSectionTextSize};
- // fill: white;
- }
- .legend text {
- fill: ${e.pieLegendTextColor};
- font-family: ${e.fontFamily};
- font-size: ${e.pieLegendTextSize};
- }
-`,"getStyles"),k=(0,o.K)(e=>{let t=[...e.values()].reduce((e,t)=>e+t,0),a=[...e.entries()].map(([e,t])=>({label:e,value:t})).filter(e=>e.value/t*100>=1);return(0,d.rLf)().value(e=>e.value).sort(null)(a)},"createPieArcs"),v={parser:D,db:b,renderer:{draw:(0,o.K)((e,t,a,i)=>{s.R.debug("rendering pie chart\n"+e);let o=i.db,c=(0,n.D7)(),p=(0,r.$t)(o.getConfig(),c.pie),h=(0,l.D)(t),g=h.append("g");g.attr("transform","translate(225,225)");let{themeVariables:u}=c,[f]=(0,r.I5)(u.pieOuterStrokeWidth);f??=2;let m=p.legendPosition,$=p.textPosition,x=p.donutHole>0&&p.donutHole<=.9?p.donutHole:0,w=(0,d.JLW)().innerRadius(185*x).outerRadius(185),S=(0,d.JLW)().innerRadius(185*$).outerRadius(185*$),y=g.append("g");y.append("circle").attr("cx",0).attr("cy",0).attr("r",185+f/2).attr("class","pieOuterCircle");let b=o.getSections(),C=k(b),D=[u.pie1,u.pie2,u.pie3,u.pie4,u.pie5,u.pie6,u.pie7,u.pie8,u.pie9,u.pie10,u.pie11,u.pie12],T=0;b.forEach(e=>{T+=e});let v=C.filter(e=>"0"!==(e.data.value/T*100).toFixed(0)),A=(0,d.UMr)(D).domain([...b.keys()]);y.selectAll("mySlices").data(v).enter().append("path").attr("d",w).attr("fill",e=>A(e.data.label)).attr("class",e=>{let t="pieCircle";return"hover"===p.highlightSlice?t+=" highlightedOnHover":p.highlightSlice===e.data.label&&(t+=" highlighted"),t}),y.selectAll("mySlices").data(v).enter().append("text").text(e=>(e.data.value/T*100).toFixed(0)+"%").attr("transform",e=>"translate("+S.centroid(e)+")").style("text-anchor","middle").attr("class","slice");let K=g.append("text").text(o.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText"),R=[...b.entries()].map(([e,t])=>({label:e,value:t})),O=g.selectAll(".legend").data(R).enter().append("g").attr("class","legend");O.append("rect").attr("width",18).attr("height",18).style("fill",e=>A(e.label)).style("stroke",e=>A(e.label)),O.append("text").attr("x",22).attr("y",14).text(e=>o.getShowData()?`${e.label} [${e.value}]`:e.label);let M=Math.max(...O.selectAll("text").nodes().map(e=>e?.getBoundingClientRect().width??0)),z=450,W=490,E=22*R.length;switch(m){case"center":O.attr("transform",(e,t)=>"translate("+(-M/2-22)+","+(22*t-22*R.length/2)+")");break;case"top":z+=E,O.attr("transform",(e,t)=>`translate(${-M/2-22}, ${22*t-185})`),y.attr("transform",()=>`translate(0, ${E+22})`);break;case"bottom":z+=E,O.attr("transform",(e,t)=>"translate("+(-M/2-22)+","+(22*t- -207)+")");break;case"left":W+=22+M,O.attr("transform",(e,t)=>"translate(-207,"+(22*t-22*R.length/2)+")"),y.attr("transform",()=>`translate(${M+18+4}, 0)`);break;default:W+=22+M,O.attr("transform",(e,t)=>"translate(216,"+(22*t-22*R.length/2)+")")}let F=K.node()?.getBoundingClientRect().width??0,H=Math.min(0,225-F/2),L=Math.max(W,225+F/2)-H;h.attr("viewBox",`${H} 0 ${L} ${z}`),(0,n.a$)(h,z,L,p.useMaxWidth)},"draw")},styles:T}},84492:(e,t,a)=>{function i(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}a.d(t,{S:()=>i}),(0,a(91158).K)(i,"populateCommonDb")}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/3922.410fe2f0ee610f5a.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/3922.410fe2f0ee610f5a.js
deleted file mode 100644
index 1e31ab9e7..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/3922.410fe2f0ee610f5a.js
+++ /dev/null
@@ -1,94 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3922],{24002:(t,e,s)=>{s.d(e,{P:()=>n});var i=s(69301),r=s(98999),a=s(91158),n=(0,a.K)((t,e,s,a)=>{t.attr("class",s);let{width:n,height:c,x:h,y:u}=l(t,e);(0,i.a$)(t,c,n,a);let d=o(h,u,n,c,e);t.attr("viewBox",d),r.R.debug(`viewBox configured: ${d} with padding: ${e}`)},"setupViewPortForSVG"),l=(0,a.K)((t,e)=>{let s=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*e,height:s.height+2*e,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),o=(0,a.K)((t,e,s,i,r)=>`${t-r} ${e-r} ${s} ${i}`,"createViewBox")},63922:(t,e,s)=>{s.d(e,{diagram:()=>k});var i=s(74773),r=s(24002),a=s(33807);s(48734),s(11232),s(13031),s(69981),s(5663),s(82142),s(29278);var n=s(13892),l=s(69301),o=s(98999),c=s(91158),h=s(70668),u=s(82237),d=s(43500),y=function(){var t=(0,c.K)(function(t,e,s,i){for(s=s||{},i=t.length;i--;s[t[i]]=e);return s},"o"),e=[6,9,21,23,25,27,34,37,38,39,40,41,43,46,47,51,53,54,55],s=[2,2],i=[1,7],r=[1,9],a=[1,10],n=[1,11],l=[1,12],o=[1,30],h=[1,23],u=[1,24],d=[1,25],y=[1,26],p=[1,27],b=[1,19],g=[1,28],_=[1,29],f=[1,20],m=[1,18],k=[1,21],E=[1,22],S=[2,6],$=[6,9,21,23,25,27,33,34,37,38,39,40,41,43,46,47,51,53,54,55],T=[1,36],O=[1,37],N=[1,38],x=[1,39],C=[1,40],A=[6,9,12,14,16,19,20,21,23,25,27,33,34,37,38,39,40,41,43,46,47,50,51,53,54,55,69,70,71,72,73],R=[1,46],I=[1,47],D=[1,57],v=[43,51,53,54,55,74,75],L=[1,70],w=[1,68],K=[1,65],M=[1,69],B=[1,71],G=[6,9,12,16,21,23,25,27,33,34,37,38,39,40,41,43,44,45,46,47,51,52,53,54,55,69,70,71,72,73],F=[1,78],Y=[1,77],P=[1,76],z=[69,70,71,72,73],U=[1,91],Z=[6,9,45,50],j=[6,9,12,44,45,50,51,52],W=[1,101],q=[1,100],X=[1,99],V=[18,61],H=[1,110],Q=[1,109],J=[20,43,51,53,54,55],tt=[18,61,64,66],te={trace:(0,c.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,statement:8,NEWLINE:9,entityName:10,relSpec:11,COLON:12,role:13,STYLE_SEPARATOR:14,idList:15,BLOCK_START:16,attributes:17,BLOCK_STOP:18,SQS:19,SQE:20,title:21,title_value:22,acc_title:23,acc_title_value:24,acc_descr:25,acc_descr_value:26,acc_descr_multiline_value:27,direction:28,classDefStatement:29,classStatement:30,styleStatement:31,subgraphHeader:32,END:33,SUBGRAPH:34,separator:35,subgraphTitle:36,direction_tb:37,direction_bt:38,direction_rl:39,direction_lr:40,CLASSDEF:41,stylesOpt:42,UNICODE_TEXT:43,STYLE_TEXT:44,COMMA:45,CLASS:46,STYLE:47,style:48,styleComponent:49,SEMI:50,NUM:51,BRKT:52,ENTITY_NAME:53,DECIMAL_NUM:54,ENTITY_ONE:55,attribute:56,attributeType:57,attributeName:58,attributeKeyTypeList:59,attributeComment:60,ATTRIBUTE_WORD:61,"?":62,attributeKeyType:63,",":64,ATTRIBUTE_KEY:65,COMMENT:66,cardinality:67,relType:68,ZERO_OR_ONE:69,ZERO_OR_MORE:70,ONE_OR_MORE:71,ONLY_ONE:72,MD_PARENT:73,NON_IDENTIFYING:74,IDENTIFYING:75,WORD:76,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"NEWLINE",12:"COLON",14:"STYLE_SEPARATOR",16:"BLOCK_START",18:"BLOCK_STOP",19:"SQS",20:"SQE",21:"title",22:"title_value",23:"acc_title",24:"acc_title_value",25:"acc_descr",26:"acc_descr_value",27:"acc_descr_multiline_value",33:"END",34:"SUBGRAPH",37:"direction_tb",38:"direction_bt",39:"direction_rl",40:"direction_lr",41:"CLASSDEF",43:"UNICODE_TEXT",44:"STYLE_TEXT",45:"COMMA",46:"CLASS",47:"STYLE",50:"SEMI",51:"NUM",52:"BRKT",53:"ENTITY_NAME",54:"DECIMAL_NUM",55:"ENTITY_ONE",61:"ATTRIBUTE_WORD",62:"?",64:",",65:"ATTRIBUTE_KEY",66:"COMMENT",69:"ZERO_OR_ONE",70:"ZERO_OR_MORE",71:"ONE_OR_MORE",72:"ONLY_ONE",73:"MD_PARENT",74:"NON_IDENTIFYING",75:"IDENTIFYING",76:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[7,1],[8,5],[8,9],[8,7],[8,7],[8,4],[8,6],[8,3],[8,5],[8,1],[8,3],[8,7],[8,9],[8,6],[8,8],[8,4],[8,6],[8,2],[8,2],[8,2],[8,1],[8,1],[8,1],[8,1],[8,1],[8,3],[32,3],[32,6],[36,1],[36,2],[28,1],[28,1],[28,1],[28,1],[29,4],[15,1],[15,1],[15,3],[15,3],[30,3],[31,4],[42,1],[42,3],[48,1],[48,2],[35,1],[35,1],[35,1],[49,1],[49,1],[49,1],[49,1],[10,1],[10,1],[10,1],[10,1],[10,1],[17,1],[17,2],[56,2],[56,3],[56,3],[56,4],[57,1],[57,2],[58,1],[59,1],[59,3],[63,1],[60,1],[11,3],[67,1],[67,1],[67,1],[67,1],[67,1],[68,1],[68,1],[13,1],[13,1],[13,1]],performAction:(0,c.K)(function(t,e,s,i,r,a,n){var l=a.length-1;switch(r){case 1:break;case 2:case 5:case 6:this.$=[];break;case 3:this.$=a[l-1].concat(a[l]);break;case 4:case 34:case 59:case 60:case 61:case 62:case 86:case 69:case 71:case 74:this.$=a[l];break;case 7:i.addEntity(a[l-4]),i.addEntity(a[l-2]),i.addRelationship(a[l-4],a[l],a[l-2],a[l-3]),this.$=[a[l-4],a[l-2]];break;case 8:i.addEntity(a[l-8]),i.addEntity(a[l-4]),i.addRelationship(a[l-8],a[l],a[l-4],a[l-5]),i.setClass([a[l-8]],a[l-6]),i.setClass([a[l-4]],a[l-2]),this.$=[a[l-8],a[l-4]];break;case 9:i.addEntity(a[l-6]),i.addEntity(a[l-2]),i.addRelationship(a[l-6],a[l],a[l-2],a[l-3]),i.setClass([a[l-6]],a[l-4]),this.$=[a[l-6],a[l-2]];break;case 10:i.addEntity(a[l-6]),i.addEntity(a[l-4]),i.addRelationship(a[l-6],a[l],a[l-4],a[l-5]),i.setClass([a[l-4]],a[l-2]),this.$=[a[l-6],a[l-4]];break;case 11:i.addEntity(a[l-3]),i.addAttributes(a[l-3],a[l-1]),this.$=[a[l-3]];break;case 12:i.addEntity(a[l-5]),i.addAttributes(a[l-5],a[l-1]),i.setClass([a[l-5]],a[l-3]),this.$=[a[l-5]];break;case 13:i.addEntity(a[l-2]),this.$=[a[l-2]];break;case 14:i.addEntity(a[l-4]),i.setClass([a[l-4]],a[l-2]),this.$=[a[l-4]];break;case 15:i.addEntity(a[l]),this.$=[a[l]];break;case 16:i.addEntity(a[l-2]),i.setClass([a[l-2]],a[l]),this.$=[a[l-2]];break;case 17:i.addEntity(a[l-6],a[l-4]),i.addAttributes(a[l-6],a[l-1]),this.$=[a[l-6]];break;case 18:i.addEntity(a[l-8],a[l-6]),i.addAttributes(a[l-8],a[l-1]),i.setClass([a[l-8]],a[l-3]),this.$=[a[l-8]];break;case 19:i.addEntity(a[l-5],a[l-3]),this.$=[a[l-5]];break;case 20:i.addEntity(a[l-7],a[l-5]),i.setClass([a[l-7]],a[l-2]),this.$=[a[l-7]];break;case 21:i.addEntity(a[l-3],a[l-1]);break;case 22:i.addEntity(a[l-5],a[l-3]),i.setClass([a[l-5]],a[l]);break;case 23:case 24:this.$=a[l].trim(),i.setAccTitle(this.$);break;case 25:case 26:this.$=a[l].trim(),i.setAccDescription(this.$);break;case 27:i.subgraphDepth?this.$=a[l]:(i.setDirection(a[l].value),this.$=[]);break;case 31:i.subgraphDepth=(i.subgraphDepth||1)-1,this.$=i.addSubGraph({text:a[l-2].id},a[l-1],{text:a[l-2].text});break;case 32:i.subgraphDepth=(i.subgraphDepth||0)+1,this.$={id:a[l-1],text:a[l-1]};break;case 33:i.subgraphDepth=(i.subgraphDepth||0)+1,this.$={id:a[l-4],text:a[l-2]};break;case 35:this.$=a[l-1]+" "+a[l];break;case 36:this.$={stmt:"dir",value:"TB"};break;case 37:this.$={stmt:"dir",value:"BT"};break;case 38:this.$={stmt:"dir",value:"RL"};break;case 39:this.$={stmt:"dir",value:"LR"};break;case 40:this.$=a[l-3],i.addClass(a[l-2],a[l-1]);break;case 41:case 42:case 63:case 72:case 47:this.$=[a[l]];break;case 43:case 44:this.$=a[l-2].concat([a[l]]);break;case 45:this.$=a[l-2],i.setClass(a[l-1],a[l]);break;case 46:this.$=a[l-3],i.addCssStyles(a[l-2],a[l-1]);break;case 48:case 73:a[l-2].push(a[l]),this.$=a[l-2];break;case 50:case 70:this.$=a[l-1]+a[l];break;case 58:case 84:case 85:case 75:this.$=a[l].replace(/"/g,"");break;case 64:a[l].push(a[l-1]),this.$=a[l];break;case 65:this.$={type:a[l-1],name:a[l]};break;case 66:this.$={type:a[l-2],name:a[l-1],keys:a[l]};break;case 67:this.$={type:a[l-2],name:a[l-1],comment:a[l]};break;case 68:this.$={type:a[l-3],name:a[l-2],keys:a[l-1],comment:a[l]};break;case 76:this.$={cardA:a[l],relType:a[l-1],cardB:a[l-2]};break;case 77:this.$=i.Cardinality.ZERO_OR_ONE;break;case 78:this.$=i.Cardinality.ZERO_OR_MORE;break;case 79:this.$=i.Cardinality.ONE_OR_MORE;break;case 80:this.$=i.Cardinality.ONLY_ONE;break;case 81:this.$=i.Cardinality.MD_PARENT;break;case 82:this.$=i.Identification.NON_IDENTIFYING;break;case 83:this.$=i.Identification.IDENTIFYING}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,s,{5:3}),{6:[1,4],7:5,8:6,9:i,10:8,21:r,23:a,25:n,27:l,28:13,29:14,30:15,31:16,32:17,34:o,37:h,38:u,39:d,40:y,41:p,43:b,46:g,47:_,51:f,53:m,54:k,55:E},t(e,S,{1:[2,1]}),t($,[2,3]),t($,[2,4]),t($,[2,5]),t($,[2,15],{11:31,67:35,14:[1,32],16:[1,33],19:[1,34],69:T,70:O,71:N,72:x,73:C}),{22:[1,41]},{24:[1,42]},{26:[1,43]},t($,[2,26]),t($,[2,27]),t($,[2,28]),t($,[2,29]),t($,[2,30]),t($,s,{5:44}),t(A,[2,58]),t(A,[2,59]),t(A,[2,60]),t(A,[2,61]),t(A,[2,62]),t($,[2,36]),t($,[2,37]),t($,[2,38]),t($,[2,39]),{15:45,43:R,44:I},{15:48,43:R,44:I},{15:49,43:R,44:I},{10:50,43:b,51:f,53:m,54:k,55:E},{10:51,43:b,51:f,53:m,54:k,55:E},{15:52,43:R,44:I},{17:53,18:[1,54],56:55,57:56,61:D},{10:58,43:b,51:f,53:m,54:k,55:E},{68:59,74:[1,60],75:[1,61]},t(v,[2,77]),t(v,[2,78]),t(v,[2,79]),t(v,[2,80]),t(v,[2,81]),t($,[2,23]),t($,[2,24]),t($,[2,25]),{6:[1,63],7:5,8:6,9:i,10:8,21:r,23:a,25:n,27:l,28:13,29:14,30:15,31:16,32:17,33:[1,62],34:o,37:h,38:u,39:d,40:y,41:p,43:b,46:g,47:_,51:f,53:m,54:k,55:E},{12:L,42:64,44:w,45:K,48:66,49:67,51:M,52:B},t(G,[2,41]),t(G,[2,42]),{15:72,43:R,44:I,45:K},{12:L,42:73,44:w,45:K,48:66,49:67,51:M,52:B},{6:F,9:Y,19:[1,75],35:74,50:P},{12:[1,79],14:[1,80]},t($,[2,16],{67:35,11:81,16:[1,82],45:K,69:T,70:O,71:N,72:x,73:C}),{18:[1,83]},t($,[2,13]),{17:84,18:[2,63],56:55,57:56,61:D},{58:85,61:[1,86]},{61:[2,69],62:[1,87]},{20:[1,88]},{67:89,69:T,70:O,71:N,72:x,73:C},t(z,[2,82]),t(z,[2,83]),t($,[2,31]),t($,S),{6:F,9:Y,35:90,45:U,50:P},{43:[1,92],44:[1,93]},t(Z,[2,47],{49:94,12:L,44:w,51:M,52:B}),t(j,[2,49]),t(j,[2,54]),t(j,[2,55]),t(j,[2,56]),t(j,[2,57]),t($,[2,45],{45:K}),{6:F,9:Y,35:95,45:U,50:P},t($,[2,32]),{10:97,36:96,43:b,51:f,53:m,54:k,55:E},t($,[2,51]),t($,[2,52]),t($,[2,53]),{13:98,43:W,53:q,76:X},{15:102,43:R,44:I},{10:103,43:b,51:f,53:m,54:k,55:E},{17:104,18:[1,105],56:55,57:56,61:D},t($,[2,11]),{18:[2,64]},t(V,[2,65],{59:106,60:107,63:108,65:H,66:Q}),t([18,61,65,66],[2,71]),{61:[2,70]},t($,[2,21],{14:[1,112],16:[1,111]}),t([43,51,53,54,55],[2,76]),t($,[2,40]),{12:L,44:w,48:113,49:67,51:M,52:B},t(G,[2,43]),t(G,[2,44]),t(j,[2,50]),t($,[2,46]),{10:115,20:[1,114],43:b,51:f,53:m,54:k,55:E},t(J,[2,34]),t($,[2,7]),t($,[2,84]),t($,[2,85]),t($,[2,86]),{12:[1,116],45:K},{12:[1,118],14:[1,117]},{18:[1,119]},t($,[2,14]),t(V,[2,66],{60:120,64:[1,121],66:Q}),t(V,[2,67]),t(tt,[2,72]),t(V,[2,75]),t(tt,[2,74]),{17:122,18:[1,123],56:55,57:56,61:D},{15:124,43:R,44:I},t(Z,[2,48],{49:94,12:L,44:w,51:M,52:B}),{6:F,9:Y,35:125,50:P},t(J,[2,35]),{13:126,43:W,53:q,76:X},{15:127,43:R,44:I},{13:128,43:W,53:q,76:X},t($,[2,12]),t(V,[2,68]),{63:129,65:H},{18:[1,130]},t($,[2,19]),t($,[2,22],{16:[1,131],45:K}),t($,[2,33]),t($,[2,10]),{12:[1,132],45:K},t($,[2,9]),t(tt,[2,73]),t($,[2,17]),{17:133,18:[1,134],56:55,57:56,61:D},{13:135,43:W,53:q,76:X},{18:[1,136]},t($,[2,20]),t($,[2,8]),t($,[2,18])],defaultActions:{84:[2,64],87:[2,70]},parseError:(0,c.K)(function(t,e){if(e.recoverable)this.trace(t);else{var s=Error(t);throw s.hash=e,s}},"parseError"),parse:(0,c.K)(function(t){var e=this,s=[0],i=[],r=[null],a=[],n=this.table,l="",o=0,h=0,u=0,d=a.slice.call(arguments,1),y=Object.create(this.lexer),p={};for(var b in this.yy)Object.prototype.hasOwnProperty.call(this.yy,b)&&(p[b]=this.yy[b]);y.setInput(t,p),p.lexer=y,p.parser=this,void 0===y.yylloc&&(y.yylloc={});var g=y.yylloc;a.push(g);var _=y.options&&y.options.ranges;function f(){var t;return"number"!=typeof(t=i.pop()||y.lex()||1)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.parseError?this.parseError=p.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,c.K)(function(t){s.length=s.length-2*t,r.length=r.length-t,a.length=a.length-t},"popStack"),(0,c.K)(f,"lex");for(var m,k,E,S,$,T,O,N,x,C={};;){if(E=s[s.length-1],this.defaultActions[E]?S=this.defaultActions[E]:(null==m&&(m=f()),S=n[E]&&n[E][m]),void 0===S||!S.length||!S[0]){var A="";for(T in x=[],n[E])this.terminals_[T]&&T>2&&x.push("'"+this.terminals_[T]+"'");A=y.showPosition?"Parse error on line "+(o+1)+":\n"+y.showPosition()+"\nExpecting "+x.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(A,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:g,expected:x})}if(S[0]instanceof Array&&S.length>1)throw Error("Parse Error: multiple actions possible at state: "+E+", token: "+m);switch(S[0]){case 1:s.push(m),r.push(y.yytext),a.push(y.yylloc),s.push(S[1]),m=null,k?(m=k,k=null):(h=y.yyleng,l=y.yytext,o=y.yylineno,g=y.yylloc,u>0&&u--);break;case 2:if(O=this.productions_[S[1]][1],C.$=r[r.length-O],C._$={first_line:a[a.length-(O||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(O||1)].first_column,last_column:a[a.length-1].last_column},_&&(C._$.range=[a[a.length-(O||1)].range[0],a[a.length-1].range[1]]),void 0!==($=this.performAction.apply(C,[l,h,o,p,S[1],r,a].concat(d))))return $;O&&(s=s.slice(0,-1*O*2),r=r.slice(0,-1*O),a=a.slice(0,-1*O)),s.push(this.productions_[S[1]][0]),r.push(C.$),a.push(C._$),N=n[s[s.length-2]][s[s.length-1]],s.push(N);break;case 3:return!0}}return!0},"parse")};function ts(){this.yy={}}return te.lexer={EOF:1,parseError:(0,c.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,c.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,c.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,c.K)(function(t){var e=t.length,s=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,c.K)(function(){return this._more=!0,this},"more"),reject:(0,c.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,c.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,c.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,c.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,c.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,c.K)(function(t,e){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],s=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var a in r)this[a]=r[a];return!1},"test_match"),next:(0,c.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,s,i,r=this._currentRules(),a=0;ae[0].length)){if(e=s,i=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(s,r[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,r[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,c.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,c.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,c.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,c.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,c.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,c.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,c.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,c.K)(function(t,e,s,i){switch(s){case 0:return this.begin("acc_title"),23;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),25;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:case 28:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 37;case 8:return 38;case 9:return 39;case 10:return 40;case 11:case 22:case 30:case 37:break;case 12:return 9;case 13:return 53;case 14:return 76;case 15:return 4;case 16:return this.begin("block"),16;case 17:case 18:case 40:return 52;case 19:case 39:return 45;case 20:return 14;case 21:case 38:return 12;case 23:return 65;case 24:case 25:case 27:return 61;case 26:this.begin("block_bq");break;case 29:return 66;case 31:return this.popState(),18;case 32:case 81:return e.yytext[0];case 33:return 19;case 34:return 20;case 35:return this.begin("style"),47;case 36:return this.popState(),9;case 41:return this.begin("style"),41;case 42:return 46;case 43:return 34;case 44:return 33;case 45:case 49:case 50:case 68:return 69;case 46:case 47:case 48:case 56:case 58:case 70:return 71;case 51:case 52:case 53:case 54:case 55:case 57:case 69:return 70;case 59:case 60:case 62:case 63:case 64:case 67:return 72;case 61:return 54;case 65:return 55;case 66:return 51;case 71:return 73;case 72:case 75:case 76:case 77:return 74;case 73:case 74:return 75;case 78:return 44;case 79:return 50;case 80:return 43;case 82:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[ \t\r]+)/i,/^(?:[\n]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\.,\u00C0-\uFFFF\*]*))/i,/^(?:[`])/i,/^(?:[^`]+)/i,/^(?:[`])/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:subgraph\b)/i,/^(?:end\b\s*)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:[0-9]+\.[0-9]+)/i,/^(?:1(?=\s+[A-Za-z_"']))/i,/^(?:1(?=\s+[0-9]))/i,/^(?:1(?=(--|\.\.|\.-|-\.)))/i,/^(?:1\b)/i,/^(?:[0-9]+)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:u(?=[\.\-\|]))/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*|\.)+)/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[36,37,38,39,40,78,79],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block_bq:{rules:[27,28],inclusive:!1},block:{rules:[22,23,24,25,26,29,30,31,32],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,33,34,35,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],inclusive:!0}}},(0,c.K)(ts,"Parser"),ts.prototype=te,te.Parser=ts,new ts}();y.parser=y;var p=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.subgraphDepth=0,this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=l.SV,this.getAccTitle=l.iN,this.setAccDescription=l.EI,this.getAccDescription=l.m7,this.setDiagramTitle=l.ke,this.getDiagramTitle=l.ab,this.getConfig=(0,c.K)(()=>(0,l.D7)().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this),this.addSubGraph=this.addSubGraph.bind(this)}static{(0,c.K)(this,"ErDB")}addEntity(t,e=""){return this.entities.has(t)?!this.entities.get(t)?.alias&&e&&(this.entities.get(t).alias=e,o.R.info(`Add alias '${e}' to entity '${t}'`)):(this.entities.set(t,{id:`entity-${t}-${this.entities.size}`,label:t,attributes:[],alias:e,shape:"erBox",look:(0,l.D7)().look??"default",cssClasses:"default",cssStyles:[],labelType:"markdown"}),o.R.info("Added new entity :",t)),this.entities.get(t)}getEntity(t){return this.entities.get(t)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(t,e){let s,i=this.addEntity(t);for(s=e.length-1;s>=0;s--)e[s].keys||(e[s].keys=[]),e[s].comment||(e[s].comment=""),i.attributes.push(e[s]),o.R.debug("Added attribute ",e[s].name)}addRelationship(t,e,s,i){let r,a;if(this.subGraphLookup.has(t))r=t;else{let e=this.addEntity(t);if(!e)return;r=e.id}if(this.subGraphLookup.has(s))a=s;else{let t=this.addEntity(s);if(!t)return;a=t.id}let n={entityA:r,roleA:e,entityB:a,relSpec:i};this.relationships.push(n),o.R.debug("Added new relationship :",n)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(t){this.direction=t}getCompiledStyles(t){let e=[];for(let s of t){let t=this.classes.get(s);t?.styles&&(e=[...e,...t.styles??[]].map(t=>t.trim())),t?.textStyles&&(e=[...e,...t.textStyles??[]].map(t=>t.trim()))}return e}addCssStyles(t,e){for(let s of t){let t=this.entities.get(s),i=this.subGraphLookup.get(s);if(e){if(t)for(let s of e)t.cssStyles.push(s);if(i)for(let t of(i.cssStyles||(i.cssStyles=[]),e))i.cssStyles.push(t)}}}addClass(t,e){t.forEach(t=>{let s=this.classes.get(t);void 0===s&&(s={id:t,styles:[],textStyles:[]},this.classes.set(t,s)),e&&e.forEach(function(t){if(/color/.exec(t)){let e=t.replace("fill","bgFill");s.textStyles.push(e)}s.styles.push(t)})})}addSubGraph(t,e,s){let i=t.text.trim(),r=s.text,a=(0,c.K)(t=>{let e,s=new Set;return{nodeList:t.filter(t=>{if(t?.stmt)return"dir"===t.stmt&&(e=t.value),!1;if("string"!=typeof t)return!1;let i=t.trim();return!(!i||s.has(i))&&(s.add(i),!0)}),dir:e}},"uniq")(e.flat()),n=a.nodeList,l=a.dir;i=i??"subGraph"+this.subCount,r=r||"",r=this.sanitizeText(r),this.subCount=this.subCount+1;let h={id:i,nodes:n,title:r.trim(),classes:[],cssStyles:[],dir:l,labelType:this.sanitizeNodeLabelType(s?.type)};return o.R.info("Adding",h.id,h.nodes,h.dir),h.nodes=this.makeUniq(h,this.subGraphs).nodes,this.subGraphs.push(h),this.subGraphLookup.set(i,h),i}getSubGraphs(){return this.subGraphs}setClass(t,e){for(let s of t){let t=this.entities.get(s);if(t)for(let s of e)t.cssClasses+=" "+s;let i=this.subGraphLookup.get(s);if(i)for(let t of e)i.classes.push(t)}}subgraphNodeCache(t){let e=new Set;for(let s of t)for(let t of s.nodes)e.add(t);return e}makeUniq(t,e){let s=this.subgraphNodeCache(e),i=[];return t.nodes.forEach((e,r)=>{s.has(e)?o.R.warn(`Entity '${e}' already belongs to another subgraph and will be ignored`):i.push(t.nodes[r])}),{nodes:i}}sanitizeText(t){return l.Y2.sanitizeText(t,(0,l.D7)())}sanitizeNodeLabelType(t){switch(t){case"markdown":case"string":case"text":return t;default:return"markdown"}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],this.subGraphs=[],this.subGraphLookup=new Map,this.subCount=0,this.subgraphDepth=0,(0,l.IU)()}getData(){let t=[],e=[],s=(0,l.D7)(),i=this.getSubGraphs(),r=new Map,a=new Map;for(let t=i.length-1;t>=0;t--){let e=i[t];for(let t of(e.nodes.length>0&&a.set(e.id,!0),e.nodes))r.set(t,e.id)}for(let e=i.length-1;e>=0;e--){let a=i[e];t.push({id:a.id,label:a.title,labelStyle:"",labelType:a.labelType,parentId:r.get(a.id),padding:8,cssCompiledStyles:this.getCompiledStyles(a.classes),cssStyles:a.cssStyles,cssClasses:a.classes.join(" "),shape:"rect",dir:a.dir,isGroup:!0,look:s.look})}let o=new Set(i.map(t=>t.id)),c=0;for(let e of this.entities.keys()){if(o.has(e))continue;let s=this.entities.get(e);s&&(s.cssCompiledStyles=this.getCompiledStyles(s.cssClasses.split(" ")),s.colorIndex=c++,t.push({...s,parentId:r.get(e),isGroup:!1}))}let h=0;for(let t of this.relationships){let i={id:(0,n.rY)(t.entityA,t.entityB,{prefix:"id",counter:h++}),type:"normal",curve:"basis",start:t.entityA,end:t.entityB,label:t.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:t.relSpec.cardB.toLowerCase(),arrowTypeEnd:t.relSpec.cardA.toLowerCase(),pattern:"IDENTIFYING"==t.relSpec.relType?"solid":"dashed",look:s.look,labelType:"markdown"};e.push(i)}return{nodes:t,edges:e,other:{},config:s,direction:this.direction}}},b={};(0,c.V)(b,{draw:()=>g});var g=(0,c.K)(async function(t,e,s,c){o.R.info("REF0:"),o.R.info("Drawing er diagram (unified)",e);let{securityLevel:u,er:d,layout:y}=(0,l.D7)(),p=c.db.getData(),b=(0,i.A)(e,u);p.type=c.type,p.layoutAlgorithm=(0,a.q7)(y),p.config.flowchart.nodeSpacing=d?.nodeSpacing||140,p.config.flowchart.rankSpacing=d?.rankSpacing||80,p.direction=c.db.getDirection();let{config:g}=p,{look:_}=g;"neo"===_?p.markers=["only_one_neo","zero_or_one_neo","one_or_more_neo","zero_or_more_neo"]:p.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],p.diagramId=e,await (0,a.XX)(p,b),"elk"===p.layoutAlgorithm&&b.select(".edges").lower();let f=b.selectAll('[id*="-background"]');Array.from(f).length>0&&f.each(function(){let t=(0,h.Ltv)(this),e=t.attr("id").replace("-background",""),s=b.select(`#${CSS.escape(e)}`);if(!s.empty()){let e=s.attr("transform");t.attr("transform",e)}}),n._K.insertTitle(b,"erDiagramTitleText",d?.titleTopMargin??25,c.db.getDiagramTitle()),(0,r.P)(b,8,"erDiagram",d?.useMaxWidth??!0)},"draw"),_=(0,c.K)((t,e)=>{let s=u.A,i=s(t,"r"),r=s(t,"g"),a=s(t,"b");return d.A(i,r,a,e)},"fade"),f=new Set(["redux-color","redux-dark-color"]),m=(0,c.K)(t=>{let{theme:e,look:s,bkgColorArray:i,borderColorArray:r}=t;if(!f.has(e))return"";let a=i?.length>0,n="";for(let e=0;e{let{look:e,theme:s,erEdgeLabelBackground:i,strokeWidth:r}=t;return`
- ${m(t)}
- .entityBox {
- fill: ${t.mainBkg};
- stroke: ${t.nodeBorder};
- }
-
- .relationshipLabelBox {
- fill: ${t.tertiaryColor};
- opacity: 0.7;
- background-color: ${t.tertiaryColor};
- rect {
- opacity: 0.5;
- }
- }
-
- .labelBkg {
- background-color: ${f.has(s)&&i?i:_(t.tertiaryColor,.5)};
- }
-
- .edgeLabel {
- background-color: ${f.has(s)&&i?i:t.edgeLabelBackground};
- }
- .edgeLabel .label rect {
- fill: ${f.has(s)&&i?i:t.edgeLabelBackground};
- }
- .edgeLabel .label text {
- fill: ${t.textColor};
- }
-
- .edgeLabel .label {
- fill: ${t.nodeBorder};
- font-size: 14px;
- }
-
- .label {
- font-family: ${t.fontFamily};
- color: ${t.nodeTextColor||t.textColor};
- }
-
- .edge-pattern-dashed {
- stroke-dasharray: 8,8;
- }
-
- .node rect,
- .node circle,
- .node ellipse,
- .node polygon
- {
- fill: ${t.mainBkg};
- stroke: ${t.nodeBorder};
- stroke-width: ${"neo"===e?r:"1px"};
- }
-
- .relationshipLine {
- stroke: ${t.lineColor};
- stroke-width: ${"neo"===e?r:"1px"};
- fill: none;
- }
-
- .marker {
- fill: none !important;
- stroke: ${t.lineColor} !important;
- stroke-width: 1;
- }
- [data-look=neo].labelBkg {
- background-color: ${_(t.tertiaryColor,.5)};
- }
-
- .cluster rect {
- fill: ${t.clusterBkg??t.mainBkg};
- stroke: ${t.clusterBorder??t.nodeBorder};
- stroke-width: 1px;
- }
-
- .cluster text {
- fill: ${t.titleColor??t.textColor};
- }
-
- .cluster-label text {
- fill: ${t.titleColor??t.textColor};
- }
-`},"getStyles")}},74773:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(91158),r=s(70668),a=(0,i.K)((t,e)=>{let s;return"sandbox"===e&&(s=(0,r.Ltv)("#i"+t)),("sandbox"===e?(0,r.Ltv)(s.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${t}"]`)},"getDiagramElement")},82237:(t,e,s)=>{s.d(e,{A:()=>a});var i=s(25866),r=s(70897);let a=(t,e)=>i.A.lang.round(r.A.parse(t)[e])}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/4065-86cebe3c49f48e0c.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/4065-86cebe3c49f48e0c.js
deleted file mode 100644
index 4bd41eb74..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/4065-86cebe3c49f48e0c.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4065],{1279:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{REDIRECT_ERROR_CODE:function(){return u},RedirectType:function(){return o},isRedirectError:function(){return l}});let n=r(76461),u="NEXT_REDIRECT";var o=function(e){return e.push="push",e.replace="replace",e}({});function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,o]=t,l=t.slice(2,-2).join(";"),a=Number(t.at(-2));return r===u&&("replace"===o||"push"===o)&&"string"==typeof l&&!isNaN(a)&&a in n.RedirectStatusCode}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2403:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleHardNavError:function(){return u},useNavFailureHandler:function(){return o}}),r(61221);let n=r(54440);function u(e){return!!e&&!!window.next.__pendingUrl&&(0,n.createHrefFromUrl)(new URL(window.location.href))!==(0,n.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function o(){}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3023:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{computeCacheBustingSearchParam:function(){return i},computeLegacyCacheBustingSearchParam:function(){return c}});let n=r(43477),u=new TextEncoder;function o(e){return void 0===e?"0":Array.isArray(e)?e.join(","):e}function l(e,t,r,n){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===n?null:[null!=e?e:"0",o(t),o(r),o(n)].join(",")}async function a(e){var t=new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",u.encode(e))).subarray(0,12);let r="";for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=r(17292)._(r(61221)).default.createContext({})},4335:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return r}});let r=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},5191:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{normalizeAppPath:function(){return o},normalizeRscURL:function(){return l}});let n=r(49382),u=r(6374);function o(e){return(0,n.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,u.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},5207:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{isRecoverableError:function(){return i},onRecoverableError:function(){return c}});let n=r(17292),u=r(23491),o=n._(r(97390)),l=r(40213),a=new WeakSet;function i(e){return a.has(e)}let c=e=>{let t=(0,o.default)(e)&&"cause"in e?e.cause:e;(0,u.isBailoutToCSRError)(t)||(0,l.reportGlobalError)(t)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5294:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{FetchStrategy:function(){return h},NavigationResultTag:function(){return d},PrefetchPriority:function(){return p},cancelPrefetchTask:function(){return i},createCacheKey:function(){return f},getCurrentCacheVersion:function(){return l},isPrefetchTaskDirty:function(){return s},navigate:function(){return u},prefetch:function(){return n},reschedulePrefetchTask:function(){return c},revalidateEntireCache:function(){return o},schedulePrefetchTask:function(){return a}});let r=()=>{throw Object.defineProperty(Error("Segment Cache experiment is not enabled. This is a bug in Next.js."),"__NEXT_ERROR_CODE",{value:"E654",enumerable:!1,configurable:!0})},n=r,u=r,o=r,l=r,a=r,i=r,c=r,s=r,f=r;var d=function(e){return e[e.MPA=0]="MPA",e[e.Success=1]="Success",e[e.NoOp=2]="NoOp",e[e.Async=3]="Async",e}({}),p=function(e){return e[e.Intent=2]="Intent",e[e.Default=1]="Default",e[e.Background=0]="Background",e}({}),h=function(e){return e[e.LoadingBoundary=0]="LoadingBoundary",e[e.PPR=1]="PPR",e[e.PPRRuntime=2]="PPRRuntime",e[e.Full=3]="Full",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5964:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"restoreReducer",{enumerable:!0,get:function(){return o}});let n=r(54440),u=r(73825);function o(e,t){var r;let{url:o,tree:l}=t,a=(0,n.createHrefFromUrl)(o),i=l||e.tree,c=e.cache;return{canonicalUrl:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:c,prefetchCache:e.prefetchCache,tree:i,nextUrl:null!=(r=(0,u.extractPathFromFlightRouterState)(i))?r:o.pathname}}r(73931),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6244:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverPatchReducer",{enumerable:!0,get:function(){return s}});let n=r(54440),u=r(27545),o=r(47661),l=r(23551),a=r(48643),i=r(9508),c=r(81107);function s(e,t){let{serverResponse:{flightData:r,canonicalUrl:s},navigatedAt:f}=t,d={};if(d.preserveCustomHistoryState=!1,"string"==typeof r)return(0,l.handleExternalUrl)(e,d,r,e.pushRef.pendingPush);let p=e.tree,h=e.cache;for(let t of r){let{segmentPath:r,tree:i}=t,_=(0,u.applyRouterStatePatchToTree)(["",...r],p,i,e.canonicalUrl);if(null===_)return e;if((0,o.isNavigatingToNewRootLayout)(p,_))return(0,l.handleExternalUrl)(e,d,e.canonicalUrl,e.pushRef.pendingPush);let y=s?(0,n.createHrefFromUrl)(s):void 0;y&&(d.canonicalUrl=y);let b=(0,c.createEmptyCacheNode)();(0,a.applyFlightData)(f,h,b,t),d.patchedTree=_,d.cache=b,h=b,p=_}return(0,i.handleMutable)(e,d)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6313:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var u={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var a=o?Object.getOwnPropertyDescriptor(e,l):null;a&&(a.get||a.set)?Object.defineProperty(u,l,a):u[l]=e[l]}return u.default=e,r&&r.set(e,u),u}r.r(t),r.d(t,{_:()=>u})},6374:(e,t)=>{"use strict";function r(e){return"("===e[0]&&e.endsWith(")")}function n(e){return e.startsWith("@")&&"@children"!==e}function u(e,t){if(e.includes(o)){let e=JSON.stringify(t);return"{}"!==e?o+"?"+e:o}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DEFAULT_SEGMENT_KEY:function(){return l},PAGE_SEGMENT_KEY:function(){return o},addSearchParamsIfPageSegment:function(){return u},isGroupSegment:function(){return r},isParallelRouteSegment:function(){return n}});let o="__PAGE__",l="__DEFAULT__"},6638:(e,t,r)=>{"use strict";var n,u;e.exports=(null==(n=r.g.process)?void 0:n.env)&&"object"==typeof(null==(u=r.g.process)?void 0:u.env)?r.g.process:r(71407)},7495:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PromiseQueue",{enumerable:!0,get:function(){return c}});let n=r(84127),u=r(40965);var o=u._("_maxConcurrency"),l=u._("_runningCount"),a=u._("_queue"),i=u._("_processNext");class c{enqueue(e){let t,r,u=new Promise((e,n)=>{t=e,r=n}),o=async()=>{try{n._(this,l)[l]++;let r=await e();t(r)}catch(e){r(e)}finally{n._(this,l)[l]--,n._(this,i)[i]()}};return n._(this,a)[a].push({promiseFn:u,task:o}),n._(this,i)[i](),u}bump(e){let t=n._(this,a)[a].findIndex(t=>t.promiseFn===e);if(t>-1){let e=n._(this,a)[a].splice(t,1)[0];n._(this,a)[a].unshift(e),n._(this,i)[i](!0)}}constructor(e=5){Object.defineProperty(this,i,{value:s}),Object.defineProperty(this,o,{writable:!0,value:void 0}),Object.defineProperty(this,l,{writable:!0,value:void 0}),Object.defineProperty(this,a,{writable:!0,value:void 0}),n._(this,o)[o]=e,n._(this,l)[l]=0,n._(this,a)[a]=[]}}function s(e){if(void 0===e&&(e=!1),(n._(this,l)[l]0){var t;null==(t=n._(this,a)[a].shift())||t.task()}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8188:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return s}});let n=r(6313),u=r(97601),o=n._(r(61221)),l=r(48344),a=r(84657);r(51719);let i=r(57166);class c extends o.default.Component{componentDidCatch(){}static getDerivedStateFromError(e){if((0,a.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,a.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:o}=this.state,l={[a.HTTPAccessErrorStatus.NOT_FOUND]:e,[a.HTTPAccessErrorStatus.FORBIDDEN]:t,[a.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(o){let i=o===a.HTTPAccessErrorStatus.NOT_FOUND&&e,c=o===a.HTTPAccessErrorStatus.FORBIDDEN&&t,s=o===a.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||c||s?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("meta",{name:"robots",content:"noindex"}),!1,l[o]]}):n}return n}constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}}function s(e){let{notFound:t,forbidden:r,unauthorized:n,children:a}=e,s=(0,l.useUntrackedPathname)(),f=(0,o.useContext)(i.MissingSlotContext);return t||r||n?(0,u.jsx)(c,{pathname:s,notFound:t,forbidden:r,unauthorized:n,missingSlots:f,children:a}):(0,u.jsx)(u.Fragment,{children:a})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8520:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"shouldHardNavigate",{enumerable:!0,get:function(){return function e(t,r){let[o,l]=r,[a,i]=t;return(0,u.matchSegment)(a,o)?!(t.length<=2)&&e((0,n.getNextFlightSegmentPath)(t),l[i]):!!Array.isArray(a)}}});let n=r(91492),u=r(31070);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9220:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});let n=r(97601),u=r(91094),o={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},text:{fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"}},l=function(e){let{error:t}=e,r=null==t?void 0:t.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(u.HandleISRError,{error:t}),(0,n.jsx)("div",{style:o.error,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:o.text,children:["Application error: a ",r?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",r?"server logs":"browser console"," for more information)."]}),r?(0,n.jsx)("p",{style:o.text,children:"Digest: "+r}):null]})})]})]})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9508:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleMutable",{enumerable:!0,get:function(){return o}});let n=r(73825);function u(e){return void 0!==e}function o(e,t){var r,o;let l=null==(r=t.shouldScroll)||r,a=e.nextUrl;if(u(t.patchedTree)){let r=(0,n.computeChangedPath)(e.tree,t.patchedTree);r?a=r:a||(a=e.canonicalUrl)}return{canonicalUrl:u(t.canonicalUrl)?t.canonicalUrl===e.canonicalUrl?e.canonicalUrl:t.canonicalUrl:e.canonicalUrl,pushRef:{pendingPush:u(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:u(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:u(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!l&&(!!u(null==t?void 0:t.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:l?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:l?null!=(o=null==t?void 0:t.scrollableSegments)?o:e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,prefetchCache:t.prefetchCache?t.prefetchCache:e.prefetchCache,tree:u(t.patchedTree)?t.patchedTree:e.tree,nextUrl:a}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},11522:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{onCaughtError:function(){return s},onUncaughtError:function(){return f}});let n=r(17292),u=r(25199),o=r(23491),l=r(40213),a=r(81751),i=n._(r(9220)),c={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function s(e,t){var r;let n,l=null==(r=t.errorBoundary)?void 0:r.constructor;if(n=n||l===a.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===i.default)return f(e);(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||c.originConsoleError(e)}function f(e){(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,l.reportGlobalError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},11689:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return s},RedirectType:function(){return u.RedirectType},forbidden:function(){return l.forbidden},notFound:function(){return o.notFound},permanentRedirect:function(){return n.permanentRedirect},redirect:function(){return n.redirect},unauthorized:function(){return a.unauthorized},unstable_isUnrecognizedActionError:function(){return f},unstable_rethrow:function(){return i.unstable_rethrow}});let n=r(87928),u=r(1279),o=r(51612),l=r(54297),a=r(48438),i=r(88126);class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class s extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}function f(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},12459:(e,t,r)=>{"use strict";let n,u;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hydrate",{enumerable:!0,get:function(){return U}});let o=r(17292),l=r(6313),a=r(97601);r(87715);let i=o._(r(15043)),c=l._(r(61221)),s=r(68859),f=r(3927),d=r(5207),p=r(11522),h=r(40647),_=r(83535),y=r(55461),b=o._(r(81107)),v=r(79926);r(57166);let g=r(32339),m=s.createFromReadableStream,R=document,E=new TextEncoder,O=!1,P=!1,j=null;function T(e){if(0===e[0])n=[];else if(1===e[0]){if(!n)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});u?u.enqueue(E.encode(e[1])):n.push(e[1])}else if(2===e[0])j=e[1];else if(3===e[0]){if(!n)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let r=atob(e[1]),o=new Uint8Array(r.length);for(var t=0;t{e.enqueue("string"==typeof t?E.encode(t):t)}),O&&!P)&&(null===e.desiredSize||e.desiredSize<0?e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),P=!0,n=void 0),u=e}}),{callServer:h.callServer,findSourceMapURL:_.findSourceMapURL});function A(e){let{pendingActionQueue:t}=e,r=(0,c.use)(w),n=(0,c.use)(t);return(0,a.jsx)(b.default,{actionQueue:n,globalErrorState:r.G,assetPrefix:r.p})}let C=c.default.StrictMode;function x(e){let{children:t}=e;return t}let N={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:d.onRecoverableError,onCaughtError:p.onCaughtError,onUncaughtError:p.onUncaughtError};function U(e){let t=new Promise((t,r)=>{w.then(r=>{(0,g.setAppBuildId)(r.b);let n=Date.now();t((0,y.createMutableActionQueue)((0,v.createInitialRouterState)({navigatedAt:n,initialFlightData:r.f,initialCanonicalUrlParts:r.c,initialParallelRoutes:new Map,location:window.location,couldBeIntercepted:r.i,postponed:r.s,prerendered:r.S}),e))},e=>r(e))}),r=(0,a.jsx)(C,{children:(0,a.jsx)(f.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,a.jsx)(x,{children:(0,a.jsx)(A,{pendingActionQueue:t})})})});"__next_error__"===document.documentElement.id?i.default.createRoot(R,N).render(r):c.default.startTransition(()=>{i.default.hydrateRoot(R,r,{...N,formState:j})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{GracefulDegradeBoundary:function(){return o},default:function(){return l}});let n=r(97601),u=r(61221);class o extends u.Component{static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(t=>{let[r,n]=t;e.setAttribute(r,n)})}render(){let{hasError:e}=this.state;return(this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return o}});let n=r(71280),u=new WeakMap;function o(e){let t=u.get(e);if(t)return t;let r=Promise.resolve(e);return u.set(e,r),Object.keys(e).forEach(t=>{n.wellKnownProperties.has(t)||(r[t]=e[t])}),r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13671:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=r(97601);function u(e){let{Component:t,slots:u,params:o,promise:l}=e;{let{createRenderParamsFromClient:e}=r(85881),l=e(o);return(0,n.jsx)(t,{...u,params:l})}}r(17584),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},15043:(e,t,r)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(39974)},16259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return u}});let n=r(68040);function u(e,t,r){for(let u in r[1]){let o=r[1][u][0],l=(0,n.createRouterCacheKey)(o),a=t.parallelRoutes.get(u);if(a){let t=new Map(a);t.delete(l),e.parallelRoutes.set(u,t)}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},17292:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n})},17584:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"InvariantError",{enumerable:!0,get:function(){return r}});class r extends Error{constructor(e,t){super("Invariant: "+(e.endsWith(".")?e:e+".")+" This is a bug in Next.js.",t),this.name="InvariantError"}}},18241:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return o}});let n=r(20010),u=r(33898),o=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:o}=(0,u.parsePath)(e);return""+(0,n.removeTrailingSlash)(t)+r+o};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},18553:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ServerInsertedHTMLContext:function(){return u},useServerInsertedHTML:function(){return o}});let n=r(6313)._(r(61221)),u=n.default.createContext(null);function o(e){let t=(0,n.useContext)(u);t&&t(e)}},20010:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},20830:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{setCacheBustingSearchParam:function(){return l},setCacheBustingSearchParamWithHash:function(){return a}});let n=r(3023),u=r(92248);async function o(e){var t,r;return"function"==typeof(null==(r=globalThis.crypto)||null==(t=r.subtle)?void 0:t.digest)?(0,n.computeCacheBustingSearchParam)(e[u.NEXT_ROUTER_PREFETCH_HEADER],e[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],e[u.NEXT_ROUTER_STATE_TREE_HEADER],e[u.NEXT_URL]):(0,n.computeLegacyCacheBustingSearchParam)(e[u.NEXT_ROUTER_PREFETCH_HEADER],e[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],e[u.NEXT_ROUTER_STATE_TREE_HEADER],e[u.NEXT_URL])}let l=async(e,t)=>{a(e,await o(t))},a=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(""+u.NEXT_RSC_UNION_QUERY+"="));t.length>0?n.push(u.NEXT_RSC_UNION_QUERY+"="+t):n.push(""+u.NEXT_RSC_UNION_QUERY),e.search=n.length?"?"+n.join("&"):""};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},22207:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheBelowFlightSegmentPath",{enumerable:!0,get:function(){return function e(t,r,o){let l=o.length<=2,[a,i]=o,c=(0,n.createRouterCacheKey)(i),s=r.parallelRoutes.get(a);if(!s)return;let f=t.parallelRoutes.get(a);if(f&&f!==s||(f=new Map(s),t.parallelRoutes.set(a,f)),l)return void f.delete(c);let d=s.get(c),p=f.get(c);p&&d&&(p===d&&(p={lazyData:p.lazyData,rsc:p.rsc,prefetchRsc:p.prefetchRsc,head:p.head,prefetchHead:p.prefetchHead,parallelRoutes:new Map(p.parallelRoutes)},f.set(c,p)),e(p,d,(0,u.getNextFlightSegmentPath)(o)))}}});let n=r(68040),u=r(91492);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},23491:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{BailoutToCSRError:function(){return n},isBailoutToCSRError:function(){return u}});let r="BAILOUT_TO_CLIENT_SIDE_RENDERING";class n extends Error{constructor(e){super("Bail out to client-side rendering: "+e),this.reason=e,this.digest=r}}function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===r}},23551:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{generateSegmentsFromPatch:function(){return m},handleExternalUrl:function(){return g},navigateReducer:function(){return function e(t,r){let{url:R,isExternalUrl:E,navigateType:O,shouldScroll:P,allowAliasing:j}=r,T={},{hash:S}=R,M=(0,u.createHrefFromUrl)(R),w="push"===O;if((0,y.prunePrefetchCache)(t.prefetchCache),T.preserveCustomHistoryState=!1,T.pendingPush=w,E)return g(t,T,R.toString(),w);if(document.getElementById("__next-page-redirect"))return g(t,T,M,w);let A=(0,y.getOrCreatePrefetchCacheEntry)({url:R,nextUrl:t.nextUrl,tree:t.tree,prefetchCache:t.prefetchCache,allowAliasing:j}),{treeAtTimeOfPrefetch:C,data:x}=A;return d.prefetchQueue.bump(x),x.then(d=>{let{flightData:y,canonicalUrl:E,postponed:O}=d,j=Date.now(),x=!1;if(A.lastUsedTime||(A.lastUsedTime=j,x=!0),A.aliased){let n=new URL(R.href);E&&(n.pathname=E.pathname);let u=(0,v.handleAliasedPrefetchEntry)(j,t,y,n,T);return!1===u?e(t,{...r,allowAliasing:!1}):u}if("string"==typeof y)return g(t,T,y,w);let N=E?(0,u.createHrefFromUrl)(E):M;if(S&&t.canonicalUrl.split("#",1)[0]===N.split("#",1)[0])return T.onlyHashChange=!0,T.canonicalUrl=N,T.shouldScroll=P,T.hashFragment=S,T.scrollableSegments=[],(0,s.handleMutable)(t,T);let U=t.tree,D=t.cache,L=[];for(let e of y){let{pathToSegment:r,seedData:u,head:s,isHeadPartial:d,isRootRender:y}=e,v=e.tree,E=["",...r],P=(0,l.applyRouterStatePatchToTree)(E,U,v,M);if(null===P&&(P=(0,l.applyRouterStatePatchToTree)(E,C,v,M)),null!==P){if(u&&y&&O){let e=(0,_.startPPRNavigation)(j,D,U,v,u,s,d,!1,L);if(null!==e){if(null===e.route)return g(t,T,M,w);P=e.route;let r=e.node;null!==r&&(T.cache=r);let u=e.dynamicRequestTree;if(null!==u){let r=(0,n.fetchServerResponse)(new URL(N,R.origin),{flightRouterState:u,nextUrl:t.nextUrl});(0,_.listenForDynamicRequest)(e,r)}}else P=v}else{if((0,i.isNavigatingToNewRootLayout)(U,P))return g(t,T,M,w);let n=(0,p.createEmptyCacheNode)(),u=!1;for(let t of(A.status!==c.PrefetchCacheEntryStatus.stale||x?u=(0,f.applyFlightData)(j,D,n,e,A):(u=function(e,t,r,n){let u=!1;for(let o of(e.rsc=t.rsc,e.prefetchRsc=t.prefetchRsc,e.loading=t.loading,e.parallelRoutes=new Map(t.parallelRoutes),m(n).map(e=>[...r,...e])))(0,b.clearCacheNodeDataForSegmentPath)(e,t,o),u=!0;return u}(n,D,r,v),A.lastUsedTime=j),(0,a.shouldHardNavigate)(E,U)?(n.rsc=D.rsc,n.prefetchRsc=D.prefetchRsc,(0,o.invalidateCacheBelowFlightSegmentPath)(n,D,r),T.cache=n):u&&(T.cache=n,D=n),m(v))){let e=[...r,...t];e[e.length-1]!==h.DEFAULT_SEGMENT_KEY&&L.push(e)}}U=P}}return T.patchedTree=U,T.canonicalUrl=N,T.scrollableSegments=L,T.hashFragment=S,T.shouldScroll=P,(0,s.handleMutable)(t,T)},()=>t)}}});let n=r(59815),u=r(54440),o=r(22207),l=r(27545),a=r(8520),i=r(47661),c=r(68081),s=r(9508),f=r(48643),d=r(62739),p=r(81107),h=r(6374),_=r(73931),y=r(66265),b=r(45879),v=r(43236);function g(e,t,r,n){return t.mpaNavigation=!0,t.canonicalUrl=r,t.pendingPush=n,t.scrollableSegments=void 0,(0,s.handleMutable)(e,t)}function m(e){let t=[],[r,n]=e;if(0===Object.keys(n).length)return[[r]];for(let[e,u]of Object.entries(n))for(let n of m(u))""===r?t.push([e,...n]):t.push([r,e,...n]);return t}r(5294),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},24253:()=>{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})},25199:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNextRouterError",{enumerable:!0,get:function(){return o}});let n=r(84657),u=r(1279);function o(e){return(0,u.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25733:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathPrefix",{enumerable:!0,get:function(){return u}});let n=r(33898);function u(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:u,hash:o}=(0,n.parsePath)(e);return""+t+r+u+o}},26649:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{fillCacheWithNewSubTreeData:function(){return i},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return c}});let n=r(16259),u=r(74051),o=r(68040),l=r(6374);function a(e,t,r,a,i,c){let{segmentPath:s,seedData:f,tree:d,head:p}=a,h=t,_=r;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,r,n,i){let c,[s,f,d,p,h]=r;if(1===t.length){let e=a(r,n);return(0,l.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[_,y]=t;if(!(0,o.matchSegment)(_,s))return null;if(2===t.length)c=a(f[y],n);else if(null===(c=e((0,u.getNextFlightSegmentPath)(t),f[y],n,i)))return null;let b=[t[0],{...f,[y]:c},d,p];return h&&(b[4]=!0),(0,l.addRefreshMarkerToActiveParallelSegments)(b,i),b}}});let n=r(6374),u=r(91492),o=r(31070),l=r(95079);function a(e,t){let[r,u]=e,[l,i]=t;if(l===n.DEFAULT_SEGMENT_KEY&&r!==n.DEFAULT_SEGMENT_KEY)return e;if((0,o.matchSegment)(r,l)){let t={};for(let e in u)void 0!==i[e]?t[e]=a(u[e],i[e]):t[e]=u[e];for(let e in i)t[e]||(t[e]=i[e]);let n=[r,t];return e[2]&&(n[2]=e[2]),e[3]&&(n[3]=e[3]),e[4]&&(n[4]=e[4]),n}return t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},27795:(e,t)=>{"use strict";var r=Symbol.for("react.transitional.element");function n(e,t,n){var u=null;if(void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),"key"in t)for(var o in n={},t)"key"!==o&&(n[o]=t[o]);else n=t;return{$$typeof:r,type:e,key:u,ref:void 0!==(t=n.ref)?t:null,props:n}}t.Fragment=Symbol.for("react.fragment"),t.jsx=n,t.jsxs=n},30704:(e,t)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return r}})},31070:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"matchSegment",{enumerable:!0,get:function(){return r}});let r=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},32213:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{doesStaticSegmentAppearInURL:function(){return c},getCacheKeyForDynamicParam:function(){return s},getParamValueFromCacheKey:function(){return d},getRenderedPathname:function(){return a},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return i},urlToUrlWithoutFlightMarker:function(){return f}});let n=r(6374),u=r(80139),o=r(92248);function l(e){let t=e.headers.get(o.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:f(new URL(e.url)).search}function a(e){let t=e.headers.get(o.NEXT_REWRITTEN_PATH_HEADER);return null!=t?t:f(new URL(e.url)).pathname}function i(e,t,r){switch(e){case"c":case"ci":return rencodeURIComponent(e)):[];case"oc":return rencodeURIComponent(e)):null;case"d":case"di":if(r>=t.length)return"";return encodeURIComponent(t[r]);default:return""}}function c(e){return!(e===u.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(n.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==n.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function s(e,t){return"string"==typeof e?(0,n.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function f(e){let t=new URL(e);if(t.searchParams.delete(o.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function d(e,t){return"c"===t||"oc"===t?e.split("/"):e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},32260:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addBasePath",{enumerable:!0,get:function(){return o}});let n=r(25733),u=r(18241);function o(e,t){return(0,u.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,"/chatui"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},32339:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getAppBuildId:function(){return u},setAppBuildId:function(){return n}});let r="";function n(e){r=e}function u(){return r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},32713:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{IDLE_LINK_STATUS:function(){return s},PENDING_LINK_STATUS:function(){return c},mountFormInstance:function(){return g},mountLinkInstance:function(){return v},onLinkVisibilityChanged:function(){return R},onNavigationIntent:function(){return E},pingVisibleLinks:function(){return P},setLinkForCurrentNavigation:function(){return f},unmountLinkForCurrentNavigation:function(){return d},unmountPrefetchableInstance:function(){return m}}),r(55461);let n=r(81107),u=r(5294),o=r(61221),l=r(68081),a=r(17584),i=null,c={pending:!0},s={pending:!1};function f(e){(0,o.startTransition)(()=>{null==i||i.setOptimisticLinkStatus(s),null==e||e.setOptimisticLinkStatus(c),i=e})}function d(e){i===e&&(i=null)}let p="function"==typeof WeakMap?new WeakMap:new Map,h=new Set,_="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;R(t.target,e)}},{rootMargin:"200px"}):null;function y(e,t){void 0!==p.get(e)&&m(e),p.set(e,t),null!==_&&_.observe(e)}function b(e){try{return(0,n.createPrefetchURL)(e)}catch(t){return("function"==typeof reportError?reportError:console.error)("Cannot prefetch '"+e+"' because it cannot be converted to a URL."),null}}function v(e,t,r,n,u,o){if(u){let u=b(t);if(null!==u){let t={router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:u.href,setOptimisticLinkStatus:o};return y(e,t),t}}return{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:o}}function g(e,t,r,n){let u=b(t);null!==u&&y(e,{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:u.href,setOptimisticLinkStatus:null})}function m(e){let t=p.get(e);if(void 0!==t){p.delete(e),h.delete(t);let r=t.prefetchTask;null!==r&&(0,u.cancelPrefetchTask)(r)}null!==_&&_.unobserve(e)}function R(e,t){let r=p.get(e);void 0!==r&&(r.isVisible=t,t?h.add(r):h.delete(r),O(r,u.PrefetchPriority.Default))}function E(e,t){let r=p.get(e);void 0!==r&&void 0!==r&&O(r,u.PrefetchPriority.Intent)}function O(e,t){var r;let n=e.prefetchTask;if(!e.isVisible){null!==n&&(0,u.cancelPrefetchTask)(n);return}r=e,(async()=>{let e;switch(r.fetchStrategy){case u.FetchStrategy.PPR:e=l.PrefetchKind.AUTO;break;case u.FetchStrategy.Full:e=l.PrefetchKind.FULL;break;case u.FetchStrategy.PPRRuntime:throw Object.defineProperty(new a.InvariantError("FetchStrategy.PPRRuntime should never be used when `experimental.clientSegmentCache` is disabled"),"__NEXT_ERROR_CODE",{value:"E772",enumerable:!1,configurable:!0});default:r.fetchStrategy,e=void 0}return r.router.prefetch(r.prefetchHref,{kind:e})})().catch(e=>{})}function P(e,t){for(let r of h){let n=r.prefetchTask;if(null!==n&&!(0,u.isPrefetchTaskDirty)(n,e,t))continue;null!==n&&(0,u.cancelPrefetchTask)(n);let o=(0,u.createCacheKey)(r.prefetchHref,e);r.prefetchTask=(0,u.schedulePrefetchTask)(o,t,r.fetchStrategy,u.PrefetchPriority.Default,null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},33898:(e,t)=>{"use strict";function r(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parsePath",{enumerable:!0,get:function(){return r}})},33974:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findHeadInCache",{enumerable:!0,get:function(){return o}});let n=r(6374),u=r(68040);function o(e,t){return function e(t,r,o,l){if(0===Object.keys(r).length)return[t,o,l];let a=Object.keys(r).filter(e=>"children"!==e);for(let l of("children"in r&&a.unshift("children"),a)){let[a,i]=r[l];if(a===n.DEFAULT_SEGMENT_KEY)continue;let c=t.parallelRoutes.get(l);if(!c)continue;let s=(0,u.createRouterCacheKey)(a),f=(0,u.createRouterCacheKey)(a,!0),d=c.get(s);if(!d)continue;let p=e(d,i,o+"/"+s,o+"/"+f);if(p)return p}return null}(e,t,"","")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35784:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,u.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(23491),u=r(25199);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},37316:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return u}});let n=r(33898);function u(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},38635:(e,t)=>{"use strict";function r(e){return Array.isArray(e)?e[1]:e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentValue",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40213:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reportGlobalError",{enumerable:!0,get:function(){return r}});let r="function"==typeof reportError?reportError:e=>{globalThis.console.error(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40647:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"callServer",{enumerable:!0,get:function(){return l}});let n=r(61221),u=r(68081),o=r(49190);async function l(e,t){return new Promise((r,l)=>{(0,n.startTransition)(()=>{(0,o.dispatchAppRouterAction)({type:u.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:l})})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40965:(e,t,r)=>{"use strict";r.r(t),r.d(t,{_:()=>u});var n=0;function u(e){return"__private_"+n+++"_"+e}},41310:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverActionReducer",{enumerable:!0,get:function(){return A}});let n=r(40647),u=r(83535),o=r(92248),l=r(95799),a=r(68859),i=r(68081),c=r(67970),s=r(54440),f=r(23551),d=r(27545),p=r(47661),h=r(9508),_=r(74051),y=r(81107),b=r(68705),v=r(62254),g=r(95079),m=r(91492),R=r(87928),E=r(1279),O=r(66265),P=r(52997),j=r(69983),T=r(91009);r(5294);let S=a.createFromFetch;async function M(e,t,r){let i,s,f,d,{actionId:p,actionArgs:h}=r,_=(0,a.createTemporaryReferenceSet)(),y=(0,T.extractInfoFromServerReferenceId)(p),b="use-cache"===y.type?(0,T.omitUnusedArgs)(h,y):h,v=await (0,a.encodeReply)(b,{temporaryReferences:_}),g=await fetch(e.canonicalUrl,{method:"POST",headers:{Accept:o.RSC_CONTENT_TYPE_HEADER,[o.ACTION_HEADER]:p,[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,m.prepareFlightRouterStateForRequest)(e.tree),...{},...t?{[o.NEXT_URL]:t}:{}},body:v});if("1"===g.headers.get(o.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new l.UnrecognizedActionError('Server Action "'+p+'" was not found on the server. \nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action'),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let R=g.headers.get("x-action-redirect"),[O,P]=(null==R?void 0:R.split(";"))||[];switch(P){case"push":i=E.RedirectType.push;break;case"replace":i=E.RedirectType.replace;break;default:i=void 0}let j=!!g.headers.get(o.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(g.headers.get("x-action-revalidated")||"[[],0,0]");s={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){s=w}let M=O?(0,c.assignLocation)(O,new URL(e.canonicalUrl,window.location.href)):void 0,A=g.headers.get("content-type"),C=!!(A&&A.startsWith(o.RSC_CONTENT_TYPE_HEADER));if(!C&&!M)throw Object.defineProperty(Error(g.status>=400&&"text/plain"===A?await g.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(C){let e=await S(Promise.resolve(g),{callServer:n.callServer,findSourceMapURL:u.findSourceMapURL,temporaryReferences:_});f=M?void 0:e.a,d=(0,m.normalizeFlightData)(e.f)}else f=void 0,d=void 0;return{actionResult:f,actionFlightData:d,redirectLocation:M,redirectType:i,revalidatedParts:s,isPrerender:j}}let w={paths:[],tag:!1,cookie:!1};function A(e,t){let{resolve:r,reject:n}=t,u={},o=e.tree;u.preserveCustomHistoryState=!1;let l=e.nextUrl&&(0,b.hasInterceptionRouteInCurrentTree)(e.tree)?e.nextUrl:null,a=Date.now();return M(e,l,t).then(async c=>{let b,{actionResult:m,actionFlightData:T,redirectLocation:S,redirectType:M,isPrerender:w,revalidatedParts:A}=c;if(S&&(M===E.RedirectType.replace?(e.pushRef.pendingPush=!1,u.pendingPush=!1):(e.pushRef.pendingPush=!0,u.pendingPush=!0),u.canonicalUrl=b=(0,s.createHrefFromUrl)(S,!1)),!T)return(r(m),S)?(0,f.handleExternalUrl)(e,u,S.href,e.pushRef.pendingPush):e;if("string"==typeof T)return r(m),(0,f.handleExternalUrl)(e,u,T,e.pushRef.pendingPush);let C=A.paths.length>0||A.tag||A.cookie;for(let n of T){let{tree:i,seedData:c,head:s,isRootRender:h}=n;if(!h)return console.log("SERVER ACTION APPLY FAILED"),r(m),e;let R=(0,d.applyRouterStatePatchToTree)([""],o,i,b||e.canonicalUrl);if(null===R)return r(m),(0,v.handleSegmentMismatch)(e,t,i);if((0,p.isNavigatingToNewRootLayout)(o,R))return r(m),(0,f.handleExternalUrl)(e,u,b||e.canonicalUrl,e.pushRef.pendingPush);if(null!==c){let t=c[1],r=(0,y.createEmptyCacheNode)();r.rsc=t,r.prefetchRsc=null,r.loading=c[3],(0,_.fillLazyItemsTillLeafWithHead)(a,r,void 0,i,c,s,void 0),u.cache=r,u.prefetchCache=new Map,C&&await (0,g.refreshInactiveParallelSegments)({navigatedAt:a,state:e,updatedTree:R,updatedCache:r,includeNextUrl:!!l,canonicalUrl:u.canonicalUrl||e.canonicalUrl})}u.patchedTree=R,o=R}return S&&b?(C||((0,O.createSeededPrefetchCacheEntry)({url:S,data:{flightData:T,canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1},tree:e.tree,prefetchCache:e.prefetchCache,nextUrl:e.nextUrl,kind:w?i.PrefetchKind.FULL:i.PrefetchKind.AUTO}),u.prefetchCache=e.prefetchCache),n((0,R.getRedirectError)((0,j.hasBasePath)(b)?(0,P.removeBasePath)(b):b,M||E.RedirectType.push))):r(m),(0,h.handleMutable)(e,u)},t=>(n(t),e))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},42464:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return n}}),r(97601);let n=()=>null},43236:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addSearchParamsToPageSegments:function(){return d},handleAliasedPrefetchEntry:function(){return f}});let n=r(6374),u=r(81107),o=r(27545),l=r(54440),a=r(68040),i=r(26649),c=r(9508),s=r(23551);function f(e,t,r,f,p){let h,_=t.tree,y=t.cache,b=(0,l.createHrefFromUrl)(f),v=[];if("string"==typeof r)return!1;for(let t of r){if(!function e(t){if(!t)return!1;let r=t[2];if(t[3])return!0;for(let t in r)if(e(r[t]))return!0;return!1}(t.seedData))continue;let r=t.tree;r=d(r,Object.fromEntries(f.searchParams));let{seedData:l,isRootRender:c,pathToSegment:p}=t,g=["",...p];r=d(r,Object.fromEntries(f.searchParams));let m=(0,o.applyRouterStatePatchToTree)(g,_,r,b),R=(0,u.createEmptyCacheNode)();if(c&&l){let t=l[1];R.loading=l[3],R.rsc=t,function e(t,r,u,o,l){if(0!==Object.keys(o[1]).length)for(let i in o[1]){let c,s=o[1][i],f=s[0],d=(0,a.createRouterCacheKey)(f),p=null!==l&&void 0!==l[2][i]?l[2][i]:null;if(null!==p){let e=p[1],r=p[3];c={lazyData:null,rsc:f.includes(n.PAGE_SEGMENT_KEY)?null:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:r,navigatedAt:t}}else c={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};let h=r.parallelRoutes.get(i);h?h.set(d,c):r.parallelRoutes.set(i,new Map([[d,c]])),e(t,c,u,s,p)}}(e,R,y,r,l)}else R.rsc=y.rsc,R.prefetchRsc=y.prefetchRsc,R.loading=y.loading,R.parallelRoutes=new Map(y.parallelRoutes),(0,i.fillCacheWithNewSubTreeDataButOnlyLoading)(e,R,y,t);for(let e of(m&&(_=m,y=R,h=!0),(0,s.generateSegmentsFromPatch)(r))){let r=[...t.pathToSegment,...e];r[r.length-1]!==n.DEFAULT_SEGMENT_KEY&&v.push(r)}}return!!h&&(p.patchedTree=_,p.cache=y,p.canonicalUrl=b,p.hashFragment=f.hash,p.scrollableSegments=v,(0,c.handleMutable)(t,p))}function d(e,t){let[r,u,...o]=e;if(r.includes(n.PAGE_SEGMENT_KEY))return[(0,n.addSearchParamsIfPageSegment)(r,t),u,...o];let l={};for(let[e,r]of Object.entries(u))l[e]=d(r,t);return[r,l,...o]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},43477:(e,t)=>{"use strict";function r(e){let t=5381;for(let r=0;r>>0}function n(e){return r(e).toString(36).slice(0,5)}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{djb2Hash:function(){return r},hexHash:function(){return n}})},45160:(e,t)=>{"use strict";function r(e){return Object.prototype.toString.call(e)}function n(e){if("[object Object]"!==r(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getObjectClassLabel:function(){return r},isPlainObject:function(){return n}})},45879:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"clearCacheNodeDataForSegmentPath",{enumerable:!0,get:function(){return function e(t,r,o){let l=o.length<=2,[a,i]=o,c=(0,u.createRouterCacheKey)(i),s=r.parallelRoutes.get(a),f=t.parallelRoutes.get(a);f&&f!==s||(f=new Map(s),t.parallelRoutes.set(a,f));let d=null==s?void 0:s.get(c),p=f.get(c);if(l){p&&p.lazyData&&p!==d||f.set(c,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1});return}if(!p||!d){p||f.set(c,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1});return}return p===d&&(p={lazyData:p.lazyData,rsc:p.rsc,prefetchRsc:p.prefetchRsc,head:p.head,prefetchHead:p.prefetchHead,parallelRoutes:new Map(p.parallelRoutes),loading:p.loading},f.set(c,p)),e(p,d,(0,n.getNextFlightSegmentPath)(o))}}});let n=r(91492),u=r(68040);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},47661:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let n=t[0],u=r[0];if(Array.isArray(n)&&Array.isArray(u)){if(n[0]!==u[0]||n[2]!==u[2])return!0}else if(n!==u)return!0;if(t[4])return!r[4];if(r[4])return!0;let o=Object.values(t[1])[0],l=Object.values(r[1])[0];return!o||!l||e(o,l)}}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48344:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useUntrackedPathname",{enumerable:!0,get:function(){return o}});let n=r(61221),u=r(88395);function o(){return(0,n.useContext)(u.PathnameContext)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48438:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unauthorized",{enumerable:!0,get:function(){return n}}),r(84657).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48643:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyFlightData",{enumerable:!0,get:function(){return o}});let n=r(74051),u=r(26649);function o(e,t,r,o,l){let{tree:a,seedData:i,head:c,isRootRender:s}=o;if(null===i)return!1;if(s){let u=i[1];r.loading=i[3],r.rsc=u,r.prefetchRsc=null,(0,n.fillLazyItemsTillLeafWithHead)(e,r,t,a,i,c,l)}else r.rsc=t.rsc,r.prefetchRsc=t.prefetchRsc,r.parallelRoutes=new Map(t.parallelRoutes),r.loading=t.loading,(0,u.fillCacheWithNewSubTreeData)(e,r,t,o,l);return!0}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48899:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return o}});let n=r(71280),u=new WeakMap;function o(e){let t=u.get(e);if(t)return t;let r=Promise.resolve(e);return u.set(e,r),Object.keys(e).forEach(t=>{n.wellKnownProperties.has(t)||(r[t]=e[t])}),r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},49190:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{dispatchAppRouterAction:function(){return l},useActionQueue:function(){return a}});let n=r(6313)._(r(61221)),u=r(49439),o=null;function l(e){if(null===o)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});o(e)}function a(e){let[t,r]=n.default.useState(e.state);return o=t=>e.dispatch(t,r),(0,u.isThenable)(t)?(0,n.use)(t):t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},49382:(e,t)=>{"use strict";function r(e){return e.startsWith("/")?e:"/"+e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureLeadingSlash",{enumerable:!0,get:function(){return r}})},49439:(e,t)=>{"use strict";function r(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isThenable",{enumerable:!0,get:function(){return r}})},50622:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let n=r(6313),u=r(97601),o=n._(r(61221)),l=r(57166);function a(){let e=(0,o.useContext)(l.TemplateContext);return(0,u.jsx)(u.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},51612:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"notFound",{enumerable:!0,get:function(){return u}});let n=""+r(84657).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function u(){let e=Object.defineProperty(Error(n),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=n,e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},51719:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},51868:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=r(48899).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},52997:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return u}}),r(69983);let n="/chatui";function u(e){return 0===n.length||(e=e.slice(n.length)).startsWith("/")||(e="/"+e),e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53608:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return M}});let n=r(17292),u=r(6313),o=r(97601),l=r(68081),a=u._(r(61221)),i=n._(r(79944)),c=r(57166),s=r(59815),f=r(97517),d=r(81751),p=r(31070),h=r(60164),_=r(92209),y=r(8188),b=r(68040),v=r(68705),g=r(49190),m=r(78198);r(5191);let R=i.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function O(e,t){let r=e.getBoundingClientRect();return r.top>=0&&r.top<=t}class P extends a.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:t}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>t.every((t,r)=>(0,p.matchSegment)(t,e[r]))))return;let r=null,n=e.hashFragment;if(n&&(r=function(e){var t;return"top"===e?document.body:null!=(t=document.getElementById(e))?t:document.getElementsByName(e)[0]}(n)),r||(r=(0,R.findDOMNode)(this)),!(r instanceof Element))return;for(;!(r instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let t=e.getBoundingClientRect();return E.every(e=>0===t[e])}(r);){if(null===r.nextElementSibling)return;r=r.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void r.scrollIntoView();let e=document.documentElement,t=e.clientHeight;!O(r,t)&&(e.scrollTop=0,O(r,t)||r.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,r.focus()}}}}function j(e){let{segmentPath:t,children:r}=e,n=(0,a.useContext)(c.GlobalLayoutRouterContext);if(!n)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(P,{segmentPath:t,focusAndScrollRef:n.focusAndScrollRef,children:r})}function T(e){let{tree:t,segmentPath:r,cacheNode:n,url:u}=e,i=(0,a.useContext)(c.GlobalLayoutRouterContext);if(!i)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:d}=i,h=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,_=(0,a.useDeferredValue)(n.rsc,h),y="object"==typeof _&&null!==_&&"function"==typeof _.then?(0,a.use)(_):_;if(!y){let e=n.lazyData;if(null===e){let t=function e(t,r){if(t){let[n,u]=t,o=2===t.length;if((0,p.matchSegment)(r[0],n)&&r[1].hasOwnProperty(u)){if(o){let t=e(void 0,r[1][u]);return[r[0],{...r[1],[u]:[t[0],t[1],t[2],"refetch"]}]}return[r[0],{...r[1],[u]:e(t.slice(2),r[1][u])}]}}return r}(["",...r],d),o=(0,v.hasInterceptionRouteInCurrentTree)(d),c=Date.now();n.lazyData=e=(0,s.fetchServerResponse)(new URL(u,location.origin),{flightRouterState:t,nextUrl:o?i.nextUrl:null}).then(e=>((0,a.startTransition)(()=>{(0,g.dispatchAppRouterAction)({type:l.ACTION_SERVER_PATCH,previousTree:d,serverResponse:e,navigatedAt:c})}),e)),(0,a.use)(e)}(0,a.use)(f.unresolvedThenable)}return(0,o.jsx)(c.LayoutRouterContext.Provider,{value:{parentTree:t,parentCacheNode:n,parentSegmentPath:r,url:u},children:y})}function S(e){let t,{loading:r,children:n}=e;if(t="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,a.use)(r):r){let e=t[0],r=t[1],u=t[2];return(0,o.jsx)(a.Suspense,{fallback:(0,o.jsxs)(o.Fragment,{children:[r,u,e]}),children:n})}return(0,o.jsx)(o.Fragment,{children:n})}function M(e){let{parallelRouterKey:t,error:r,errorStyles:n,errorScripts:u,templateStyles:l,templateScripts:i,template:s,notFound:f,forbidden:p,unauthorized:h,segmentViewBoundaries:v}=e,g=(0,a.useContext)(c.LayoutRouterContext);if(!g)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:R,parentCacheNode:E,parentSegmentPath:O,url:P}=g,M=E.parallelRoutes,w=M.get(t);w||(w=new Map,M.set(t,w));let A=R[0],C=null===O?[t]:O.concat([A,t]),x=R[1][t],N=x[0],U=(0,b.createRouterCacheKey)(N,!0),D=(0,m.useRouterBFCache)(x,U),L=[];do{let e=D.tree,t=D.stateKey,a=e[0],v=(0,b.createRouterCacheKey)(a),g=w.get(v);if(void 0===g){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};g=e,w.set(v,e)}let m=E.loading,R=(0,o.jsxs)(c.TemplateContext.Provider,{value:(0,o.jsxs)(j,{segmentPath:C,children:[(0,o.jsx)(d.ErrorBoundary,{errorComponent:r,errorStyles:n,errorScripts:u,children:(0,o.jsx)(S,{loading:m,children:(0,o.jsx)(y.HTTPAccessFallbackBoundary,{notFound:f,forbidden:p,unauthorized:h,children:(0,o.jsxs)(_.RedirectBoundary,{children:[(0,o.jsx)(T,{url:P,tree:e,cacheNode:g,segmentPath:C}),null]})})})}),null]}),children:[l,i,s]},t);L.push(R),D=D.next}while(null!==D);return L}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},54297:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"forbidden",{enumerable:!0,get:function(){return n}}),r(84657).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},54440:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=!0),e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createHrefFromUrl",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},55461:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createMutableActionQueue:function(){return _},dispatchNavigateAction:function(){return v},dispatchTraverseAction:function(){return g},getCurrentAppRouterState:function(){return y},publicAppRouterInstance:function(){return m}});let n=r(68081),u=r(60953),o=r(61221),l=r(49439);r(5294);let a=r(49190),i=r(32260),c=r(81107),s=r(62739),f=r(32713);function d(e,t){null!==e.pending&&(e.pending=e.pending.next,null!==e.pending?p({actionQueue:e,action:e.pending,setState:t}):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:n.ACTION_REFRESH,origin:window.location.origin},t)))}async function p(e){let{actionQueue:t,action:r,setState:n}=e,u=t.state;t.pending=r;let o=r.payload,a=t.action(u,o);function i(e){r.discarded||(t.state=e,d(t,n),r.resolve(e))}(0,l.isThenable)(a)?a.then(i,e=>{d(t,n),r.reject(e)}):i(a)}let h=null;function _(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let u={resolve:r,reject:()=>{}};if(t.type!==n.ACTION_RESTORE){let e=new Promise((e,t)=>{u={resolve:e,reject:t}});(0,o.startTransition)(()=>{r(e)})}let l={payload:t,next:null,resolve:u.resolve,reject:u.reject};null===e.pending?(e.last=l,p({actionQueue:e,action:l,setState:r})):t.type===n.ACTION_NAVIGATE||t.type===n.ACTION_RESTORE?(e.pending.discarded=!0,l.next=e.pending.next,e.pending.payload.type===n.ACTION_SERVER_ACTION&&(e.needsRefresh=!0),p({actionQueue:e,action:l,setState:r})):(null!==e.last&&(e.last.next=l),e.last=l)})(r,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if(null!==h)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});return h=r,r}function y(){return null!==h?h.state:null}function b(){return null!==h?h.onRouterTransitionStart:null}function v(e,t,r,u){let o=new URL((0,i.addBasePath)(e),location.href);(0,f.setLinkForCurrentNavigation)(u);let l=b();null!==l&&l(e,t),(0,a.dispatchAppRouterAction)({type:n.ACTION_NAVIGATE,url:o,isExternalUrl:(0,c.isExternalURL)(o),locationSearch:location.search,shouldScroll:r,navigateType:t,allowAliasing:!0})}function g(e,t){let r=b();null!==r&&r(e,"traverse"),(0,a.dispatchAppRouterAction)({type:n.ACTION_RESTORE,url:new URL(e),tree:t})}let m={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r=function(){if(null===h)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return h}(),u=(0,c.createPrefetchURL)(e);if(null!==u){var o;(0,s.prefetchReducer)(r.state,{type:n.ACTION_PREFETCH,url:u,kind:null!=(o=null==t?void 0:t.kind)?o:n.PrefetchKind.FULL})}},replace:(e,t)=>{(0,o.startTransition)(()=>{var r;v(e,"replace",null==(r=null==t?void 0:t.scroll)||r,null)})},push:(e,t)=>{(0,o.startTransition)(()=>{var r;v(e,"push",null==(r=null==t?void 0:t.scroll)||r,null)})},refresh:()=>{(0,o.startTransition)(()=>{(0,a.dispatchAppRouterAction)({type:n.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};window.next&&(window.next.router=m),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},56917:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return u}});let n=r(97601);function u(e){let{Component:t,searchParams:u,params:o,promises:l}=e;{let{createRenderSearchParamsFromClient:e}=r(51868),l=e(u),{createRenderParamsFromClient:a}=r(85881),i=a(o);return(0,n.jsx)(t,{params:i,searchParams:l})}}r(17584),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},57166:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{AppRouterContext:function(){return u},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return o},MissingSlotContext:function(){return i},TemplateContext:function(){return a}});let n=r(17292)._(r(61221)),u=n.default.createContext(null),o=n.default.createContext(null),l=n.default.createContext(null),a=n.default.createContext(null),i=n.default.createContext(new Set)},59815:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createFetch:function(){return y},createFromNextReadableStream:function(){return b},fetchServerResponse:function(){return _}});let n=r(68859),u=r(92248),o=r(40647),l=r(83535),a=r(68081),i=r(91492),c=r(32339),s=r(20830),f=r(32213),d=n.createFromReadableStream;function p(e){return{flightData:(0,f.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString(),canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1}}let h=new AbortController;async function _(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,l={[u.RSC_HEADER]:"1",[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,i.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===a.PrefetchKind.AUTO&&(l[u.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(l[u.NEXT_URL]=n);try{var s;let t=o?o===a.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await y(e,l,t,h.signal),n=(0,f.urlToUrlWithoutFlightMarker)(new URL(r.url)),d=r.redirected?n:void 0,_=r.headers.get("content-type")||"",v=!!(null==(s=r.headers.get("vary"))?void 0:s.includes(u.NEXT_URL)),g=!!r.headers.get(u.NEXT_DID_POSTPONE_HEADER),m=r.headers.get(u.NEXT_ROUTER_STALE_TIME_HEADER),R=null!==m?1e3*parseInt(m,10):-1,E=_.startsWith(u.RSC_CONTENT_TYPE_HEADER);if(E||(E=_.startsWith("text/plain")),!E||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),p(n.toString());let O=g?function(e){let t=e.getReader();return new ReadableStream({async pull(e){for(;;){let{done:r,value:n}=await t.read();if(!r){e.enqueue(n);continue}return}}})}(r.body):r.body,P=await b(O);if((0,c.getAppBuildId)()!==P.b)return p(r.url);return{flightData:(0,i.normalizeFlightData)(P.f),canonicalUrl:d,couldBeIntercepted:v,prerendered:P.S,postponed:g,staleTime:R}}catch(t){return h.signal.aborted||console.error("Failed to fetch RSC payload for "+e+". Falling back to browser navigation.",t),{flightData:e.toString(),canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1}}}async function y(e,t,r,n){let o=new URL(e);await (0,s.setCacheBustingSearchParam)(o,t);let l=await fetch(o,{credentials:"same-origin",headers:t,priority:r||void 0,signal:n}),a=l.redirected,i=new URL(l.url,o);return i.searchParams.delete(u.NEXT_RSC_UNION_QUERY),{url:i.href,redirected:a,ok:l.ok,headers:l.headers,body:l.body,status:l.status}}function b(e){return d(e,{callServer:o.callServer,findSourceMapURL:l.findSourceMapURL})}window.addEventListener("pagehide",()=>{h.abort()}),window.addEventListener("pageshow",()=>{h=new AbortController}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60005:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{MetadataBoundary:function(){return o},OutletBoundary:function(){return a},RootLayoutBoundary:function(){return i},ViewportBoundary:function(){return l}});let n=r(80642),u={[n.METADATA_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.VIEWPORT_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.OUTLET_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.ROOT_LAYOUT_BOUNDARY_NAME]:function(e){let{children:t}=e;return t}},o=u[n.METADATA_BOUNDARY_NAME.slice(0)],l=u[n.VIEWPORT_BOUNDARY_NAME.slice(0)],a=u[n.OUTLET_BOUNDARY_NAME.slice(0)],i=u[n.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},60164:(e,t,r)=>{"use strict";function n(e,t){if(void 0===t&&(t={}),t.onlyHashChange)return void e();let r=document.documentElement;r.dataset.scrollBehavior;let n=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),r(51719)},60953:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reducer",{enumerable:!0,get:function(){return f}});let n=r(68081),u=r(23551),o=r(6244),l=r(5964),a=r(63757),i=r(62739),c=r(76251),s=r(41310),f=function(e,t){switch(t.type){case n.ACTION_NAVIGATE:return(0,u.navigateReducer)(e,t);case n.ACTION_SERVER_PATCH:return(0,o.serverPatchReducer)(e,t);case n.ACTION_RESTORE:return(0,l.restoreReducer)(e,t);case n.ACTION_REFRESH:return(0,a.refreshReducer)(e,t);case n.ACTION_HMR_REFRESH:return(0,c.hmrRefreshReducer)(e,t);case n.ACTION_PREFETCH:return(0,i.prefetchReducer)(e,t);case n.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},61221:(e,t,r)=>{"use strict";e.exports=r(99188)},61431:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTML_LIMITED_BOT_UA_RE:function(){return n.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return o},getBotType:function(){return i},isBot:function(){return a}});let n=r(4335),u=/Googlebot(?!-)|Googlebot$/i,o=n.HTML_LIMITED_BOT_UA_RE.source;function l(e){return n.HTML_LIMITED_BOT_UA_RE.test(e)}function a(e){return u.test(e)||l(e)}function i(e){return u.test(e)?"dom":l(e)?"html":void 0}},62254:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleSegmentMismatch",{enumerable:!0,get:function(){return u}});let n=r(23551);function u(e,t,r){return(0,n.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},62739:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{prefetchQueue:function(){return o},prefetchReducer:function(){return l}});let n=r(7495),u=r(66265),o=new n.PromiseQueue(5),l=function(e,t){(0,u.prunePrefetchCache)(e.prefetchCache);let{url:r}=t;return(0,u.getOrCreatePrefetchCacheEntry)({url:r,nextUrl:e.nextUrl,prefetchCache:e.prefetchCache,kind:t.kind,tree:e.tree,allowAliasing:!0}),e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},62943:(e,t,r)=>{"use strict";e.exports=r(75540)},63757:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"refreshReducer",{enumerable:!0,get:function(){return h}});let n=r(59815),u=r(54440),o=r(27545),l=r(47661),a=r(23551),i=r(9508),c=r(74051),s=r(81107),f=r(62254),d=r(68705),p=r(95079);function h(e,t){let{origin:r}=t,h={},_=e.canonicalUrl,y=e.tree;h.preserveCustomHistoryState=!1;let b=(0,s.createEmptyCacheNode)(),v=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);b.lazyData=(0,n.fetchServerResponse)(new URL(_,r),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:v?e.nextUrl:null});let g=Date.now();return b.lazyData.then(async r=>{let{flightData:n,canonicalUrl:s}=r;if("string"==typeof n)return(0,a.handleExternalUrl)(e,h,n,e.pushRef.pendingPush);for(let r of(b.lazyData=null,n)){let{tree:n,seedData:i,head:d,isRootRender:m}=r;if(!m)return console.log("REFRESH FAILED"),e;let R=(0,o.applyRouterStatePatchToTree)([""],y,n,e.canonicalUrl);if(null===R)return(0,f.handleSegmentMismatch)(e,t,n);if((0,l.isNavigatingToNewRootLayout)(y,R))return(0,a.handleExternalUrl)(e,h,_,e.pushRef.pendingPush);let E=s?(0,u.createHrefFromUrl)(s):void 0;if(s&&(h.canonicalUrl=E),null!==i){let e=i[1],t=i[3];b.rsc=e,b.prefetchRsc=null,b.loading=t,(0,c.fillLazyItemsTillLeafWithHead)(g,b,void 0,n,i,d,void 0),h.prefetchCache=new Map}await (0,p.refreshInactiveParallelSegments)({navigatedAt:g,state:e,updatedTree:R,updatedCache:b,includeNextUrl:v,canonicalUrl:h.canonicalUrl||e.canonicalUrl}),h.cache=b,h.patchedTree=R,y=R}return(0,i.handleMutable)(e,h)},()=>e)}r(5294),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},65716:(e,t,r)=>{"use strict";var n=r(61221);function u(e){var t="https://react.dev/errors/"+e;if(1{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DYNAMIC_STALETIME_MS:function(){return d},STATIC_STALETIME_MS:function(){return p},createSeededPrefetchCacheEntry:function(){return c},getOrCreatePrefetchCacheEntry:function(){return i},prunePrefetchCache:function(){return f}});let n=r(59815),u=r(68081),o=r(62739);function l(e,t,r){let n=e.pathname;return(t&&(n+=e.search),r)?""+r+"%"+n:n}function a(e,t,r){return l(e,t===u.PrefetchKind.FULL,r)}function i(e){let{url:t,nextUrl:r,tree:n,prefetchCache:o,kind:a,allowAliasing:i=!0}=e,c=function(e,t,r,n,o){for(let a of(void 0===t&&(t=u.PrefetchKind.TEMPORARY),[r,null])){let r=l(e,!0,a),i=l(e,!1,a),c=e.search?r:i,s=n.get(c);if(s&&o){if(s.url.pathname===e.pathname&&s.url.search!==e.search)return{...s,aliased:!0};return s}let f=n.get(i);if(o&&e.search&&t!==u.PrefetchKind.FULL&&f&&!f.key.includes("%"))return{...f,aliased:!0}}if(t!==u.PrefetchKind.FULL&&o){for(let t of n.values())if(t.url.pathname===e.pathname&&!t.key.includes("%"))return{...t,aliased:!0}}}(t,a,r,o,i);return c?(c.status=h(c),c.kind!==u.PrefetchKind.FULL&&a===u.PrefetchKind.FULL&&c.data.then(e=>{if(!(Array.isArray(e.flightData)&&e.flightData.some(e=>e.isRootRender&&null!==e.seedData)))return s({tree:n,url:t,nextUrl:r,prefetchCache:o,kind:null!=a?a:u.PrefetchKind.TEMPORARY})}),a&&c.kind===u.PrefetchKind.TEMPORARY&&(c.kind=a),c):s({tree:n,url:t,nextUrl:r,prefetchCache:o,kind:a||u.PrefetchKind.TEMPORARY})}function c(e){let{nextUrl:t,tree:r,prefetchCache:n,url:o,data:l,kind:i}=e,c=l.couldBeIntercepted?a(o,i,t):a(o,i),s={treeAtTimeOfPrefetch:r,data:Promise.resolve(l),kind:i,prefetchTime:Date.now(),lastUsedTime:Date.now(),staleTime:l.staleTime,key:c,status:u.PrefetchCacheEntryStatus.fresh,url:o};return n.set(c,s),s}function s(e){let{url:t,kind:r,tree:l,nextUrl:i,prefetchCache:c}=e,s=a(t,r),f=o.prefetchQueue.enqueue(()=>(0,n.fetchServerResponse)(t,{flightRouterState:l,nextUrl:i,prefetchKind:r}).then(e=>{let r;if(e.couldBeIntercepted&&(r=function(e){let{url:t,nextUrl:r,prefetchCache:n,existingCacheKey:u}=e,o=n.get(u);if(!o)return;let l=a(t,o.kind,r);return n.set(l,{...o,key:l}),n.delete(u),l}({url:t,existingCacheKey:s,nextUrl:i,prefetchCache:c})),e.prerendered){let t=c.get(null!=r?r:s);t&&(t.kind=u.PrefetchKind.FULL,-1!==e.staleTime&&(t.staleTime=e.staleTime))}return e})),d={treeAtTimeOfPrefetch:l,data:f,kind:r,prefetchTime:Date.now(),lastUsedTime:null,staleTime:-1,key:s,status:u.PrefetchCacheEntryStatus.fresh,url:t};return c.set(s,d),d}function f(e){for(let[t,r]of e)h(r)===u.PrefetchCacheEntryStatus.expired&&e.delete(t)}let d=1e3*Number("0"),p=1e3*Number("300");function h(e){let{kind:t,prefetchTime:r,lastUsedTime:n}=e;return Date.now()<(null!=n?n:r)+d?n?u.PrefetchCacheEntryStatus.reusable:u.PrefetchCacheEntryStatus.fresh:t===u.PrefetchKind.AUTO&&Date.now(){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AsyncMetadataOutlet",{enumerable:!0,get:function(){return l}});let n=r(97601),u=r(61221);function o(e){let{promise:t}=e,{error:r,digest:n}=(0,u.use)(t);if(r)throw n&&(r.digest=n),r;return null}function l(e){let{promise:t}=e;return(0,n.jsx)(u.Suspense,{fallback:null,children:(0,n.jsx)(o,{promise:t})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},67970:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"assignLocation",{enumerable:!0,get:function(){return u}});let n=r(32260);function u(e,t){if(e.startsWith(".")){let r=t.origin+t.pathname;return new URL((r.endsWith("/")?r:r+"/")+e)}return new URL((0,n.addBasePath)(e),t.href)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68040:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRouterCacheKey",{enumerable:!0,get:function(){return u}});let n=r(6374);function u(e,t){return(void 0===t&&(t=!1),Array.isArray(e))?e[0]+"|"+e[1]+"|"+e[2]:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68081:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HMR_REFRESH:function(){return a},ACTION_NAVIGATE:function(){return n},ACTION_PREFETCH:function(){return l},ACTION_REFRESH:function(){return r},ACTION_RESTORE:function(){return u},ACTION_SERVER_ACTION:function(){return i},ACTION_SERVER_PATCH:function(){return o},PrefetchCacheEntryStatus:function(){return s},PrefetchKind:function(){return c}});let r="refresh",n="navigate",u="restore",o="server-patch",l="prefetch",a="hmr-refresh",i="server-action";var c=function(e){return e.AUTO="auto",e.FULL="full",e.TEMPORARY="temporary",e}({}),s=function(e){return e.fresh="fresh",e.reusable="reusable",e.expired="expired",e.stale="stale",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68702:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return i.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return i.unauthorized},unstable_isUnrecognizedActionError:function(){return s.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return i.unstable_rethrow},useParams:function(){return _},usePathname:function(){return p},useRouter:function(){return h},useSearchParams:function(){return d},useSelectedLayoutSegment:function(){return b},useSelectedLayoutSegments:function(){return y},useServerInsertedHTML:function(){return c.useServerInsertedHTML}});let n=r(61221),u=r(57166),o=r(88395),l=r(38635),a=r(6374),i=r(11689),c=r(18553),s=r(95799),f=void 0;function d(){let e=(0,n.useContext)(o.SearchParamsContext);return(0,n.useMemo)(()=>e?new i.ReadonlyURLSearchParams(e):null,[e])}function p(){return null==f||f("usePathname()"),(0,n.useContext)(o.PathnameContext)}function h(){let e=(0,n.useContext)(u.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function _(){return null==f||f("useParams()"),(0,n.useContext)(o.PathParamsContext)}function y(e){void 0===e&&(e="children"),null==f||f("useSelectedLayoutSegments()");let t=(0,n.useContext)(u.LayoutRouterContext);return t?function e(t,r,n,u){let o;if(void 0===n&&(n=!0),void 0===u&&(u=[]),n)o=t[1][r];else{var i;let e=t[1];o=null!=(i=e.children)?i:Object.values(e)[0]}if(!o)return u;let c=o[0],s=(0,l.getSegmentValue)(c);return!s||s.startsWith(a.PAGE_SEGMENT_KEY)?u:(u.push(s),e(o,r,!1,u))}(t.parentTree,e):null}function b(e){void 0===e&&(e="children"),null==f||f("useSelectedLayoutSegment()");let t=y(e);if(!t||0===t.length)return null;let r="children"===e?t[0]:t[t.length-1];return r===a.DEFAULT_SEGMENT_KEY?null:r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68705:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e(t){let[r,u]=t;if(Array.isArray(r)&&("di"===r[2]||"ci"===r[2])||"string"==typeof r&&(0,n.isInterceptionRouteAppPath)(r))return!0;if(u){for(let t in u)if(e(u[t]))return!0}return!1}}});let n=r(69292);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68859:(e,t,r)=>{"use strict";e.exports=r(80848)},69292:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{INTERCEPTION_ROUTE_MARKERS:function(){return u},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return o}});let n=r(5191),u=["(..)(..)","(.)","(..)","(...)"];function o(e){return void 0!==e.split("/").find(e=>u.find(t=>e.startsWith(t)))}function l(e){let t,r,o;for(let n of e.split("/"))if(r=u.find(e=>n.startsWith(e))){[t,o]=e.split(r,2);break}if(!t||!r||!o)throw Object.defineProperty(Error("Invalid interception route: "+e+". Must be in the format //(..|...|..)(..)/"),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,n.normalizeAppPath)(t),r){case"(.)":o="/"===t?"/"+o:t+"/"+o;break;case"(..)":if("/"===t)throw Object.defineProperty(Error("Invalid interception route: "+e+". Cannot use (..) marker at the root level, use (.) instead."),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});o=t.split("/").slice(0,-1).concat(o).join("/");break;case"(...)":o="/"+o;break;case"(..)(..)":let l=t.split("/");if(l.length<=2)throw Object.defineProperty(Error("Invalid interception route: "+e+". Cannot use (..)(..) marker at the root level or one level up."),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});o=l.slice(0,-2).concat(o).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:o}}},69983:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasBasePath",{enumerable:!0,get:function(){return u}});let n=r(37316);function u(e){return(0,n.pathHasPrefix)(e,"/chatui")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},71280:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return n},wellKnownProperties:function(){return o}});let r=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function n(e,t){return r.test(t)?"`"+e+"."+t+"`":"`"+e+"["+JSON.stringify(t)+"]`"}function u(e,t){let r=JSON.stringify(t);return"`Reflect.has("+e+", "+r+")`, `"+r+" in "+e+"`, or similar"}let o=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"])},71407:e=>{!function(){var t={229:function(e){var t,r,n,u=e.exports={};function o(){throw Error("setTimeout has not been defined")}function l(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:l}catch(e){r=l}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var i=[],c=!1,s=-1;function f(){c&&n&&(c=!1,n.length?i=n.concat(i):s=-1,i.length&&d())}function d(){if(!c){var e=a(f);c=!0;for(var t=i.length;t;){for(n=i,i=[];++s1)for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{computeChangedPath:function(){return c},extractPathFromFlightRouterState:function(){return i},getSelectedParams:function(){return function e(t,r){for(let n of(void 0===r&&(r={}),Object.values(t[1]))){let t=n[0],o=Array.isArray(t),l=o?t[1]:t;!l||l.startsWith(u.PAGE_SEGMENT_KEY)||(o&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):o&&(r[t[0]]=t[1]),r=e(n,r))}return r}}});let n=r(69292),u=r(6374),o=r(31070),l=e=>"string"==typeof e?"children"===e?"":e:e[1];function a(e){return e.reduce((e,t)=>{let r;return""===(t="/"===(r=t)[0]?r.slice(1):r)||(0,u.isGroupSegment)(t)?e:e+"/"+t},"")||"/"}function i(e){var t;let r=Array.isArray(e[0])?e[0][1]:e[0];if(r===u.DEFAULT_SEGMENT_KEY||n.INTERCEPTION_ROUTE_MARKERS.some(e=>r.startsWith(e)))return;if(r.startsWith(u.PAGE_SEGMENT_KEY))return"";let o=[l(r)],c=null!=(t=e[1])?t:{},s=c.children?i(c.children):void 0;if(void 0!==s)o.push(s);else for(let[e,t]of Object.entries(c)){if("children"===e)continue;let r=i(t);void 0!==r&&o.push(r)}return a(o)}function c(e,t){let r=function e(t,r){let[u,a]=t,[c,s]=r,f=l(u),d=l(c);if(n.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(u,c)){var p;return null!=(p=i(r))?p:""}for(let t in a)if(s[t]){let r=e(a[t],s[t]);if(null!==r)return l(c)+"/"+r}return null}(e,t);return null==r||"/"===r?r:a(r.split("/"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},73931:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{abortTask:function(){return h},listenForDynamicRequest:function(){return p},startPPRNavigation:function(){return c},updateCacheNodeOnPopstateRestoration:function(){return function e(t,r){let n=r[1],u=t.parallelRoutes,l=new Map(u);for(let t in n){let r=n[t],a=r[0],i=(0,o.createRouterCacheKey)(a),c=u.get(t);if(void 0!==c){let n=c.get(i);if(void 0!==n){let u=e(n,r),o=new Map(c);o.set(i,u),l.set(t,o)}}}let a=t.rsc,i=b(a)&&"pending"===a.status;return{lazyData:null,rsc:a,head:t.head,prefetchHead:i?t.prefetchHead:[null,null],prefetchRsc:i?t.prefetchRsc:null,loading:t.loading,parallelRoutes:l,navigatedAt:t.navigatedAt}}}});let n=r(6374),u=r(31070),o=r(68040),l=r(47661),a=r(66265),i={route:null,node:null,dynamicRequestTree:null,children:null};function c(e,t,r,l,a,c,d,p,h){return function e(t,r,l,a,c,d,p,h,_,y,b){let v=l[1],g=a[1],m=null!==d?d[2]:null;c||!0===a[4]&&(c=!0);let R=r.parallelRoutes,E=new Map(R),O={},P=null,j=!1,T={};for(let r in g){let l,a=g[r],f=v[r],d=R.get(r),S=null!==m?m[r]:null,M=a[0],w=y.concat([r,M]),A=(0,o.createRouterCacheKey)(M),C=void 0!==f?f[0]:void 0,x=void 0!==d?d.get(A):void 0;if(null!==(l=M===n.DEFAULT_SEGMENT_KEY?void 0!==f?{route:f,node:null,dynamicRequestTree:null,children:null}:s(t,f,a,x,c,void 0!==S?S:null,p,h,w,b):_&&0===Object.keys(a[1]).length?s(t,f,a,x,c,void 0!==S?S:null,p,h,w,b):void 0!==f&&void 0!==C&&(0,u.matchSegment)(M,C)&&void 0!==x&&void 0!==f?e(t,x,f,a,c,S,p,h,_,w,b):s(t,f,a,x,c,void 0!==S?S:null,p,h,w,b))){if(null===l.route)return i;null===P&&(P=new Map),P.set(r,l);let e=l.node;if(null!==e){let t=new Map(d);t.set(A,e),E.set(r,t)}let t=l.route;O[r]=t;let n=l.dynamicRequestTree;null!==n?(j=!0,T[r]=n):T[r]=t}else O[r]=a,T[r]=a}if(null===P)return null;let S={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:E,navigatedAt:t};return{route:f(a,O),node:S,dynamicRequestTree:j?f(a,T):null,children:P}}(e,t,r,l,!1,a,c,d,p,[],h)}function s(e,t,r,n,u,c,s,p,h,_){return!u&&(void 0===t||(0,l.isNavigatingToNewRootLayout)(t,r))?i:function e(t,r,n,u,l,i,c,s){let p,h,_,y,b=r[1],v=0===Object.keys(b).length;if(void 0!==n&&n.navigatedAt+a.DYNAMIC_STALETIME_MS>t)p=n.rsc,h=n.loading,_=n.head,y=n.navigatedAt;else if(null===u)return d(t,r,null,l,i,c,s);else if(p=u[1],h=u[3],_=v?l:null,y=t,u[4]||i&&v)return d(t,r,u,l,i,c,s);let g=null!==u?u[2]:null,m=new Map,R=void 0!==n?n.parallelRoutes:null,E=new Map(R),O={},P=!1;if(v)s.push(c);else for(let r in b){let n=b[r],u=null!==g?g[r]:null,a=null!==R?R.get(r):void 0,f=n[0],d=c.concat([r,f]),p=(0,o.createRouterCacheKey)(f),h=e(t,n,void 0!==a?a.get(p):void 0,u,l,i,d,s);m.set(r,h);let _=h.dynamicRequestTree;null!==_?(P=!0,O[r]=_):O[r]=n;let y=h.node;if(null!==y){let e=new Map;e.set(p,y),E.set(r,e)}}return{route:r,node:{lazyData:null,rsc:p,prefetchRsc:null,head:_,prefetchHead:null,loading:h,parallelRoutes:E,navigatedAt:y},dynamicRequestTree:P?f(r,O):null,children:m}}(e,r,n,c,s,p,h,_)}function f(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function d(e,t,r,n,u,l,a){let i=f(t,t[1]);return i[3]="refetch",{route:t,node:function e(t,r,n,u,l,a,i){let c=r[1],s=null!==n?n[2]:null,f=new Map;for(let r in c){let n=c[r],d=null!==s?s[r]:null,p=n[0],h=a.concat([r,p]),_=(0,o.createRouterCacheKey)(p),y=e(t,n,void 0===d?null:d,u,l,h,i),b=new Map;b.set(_,y),f.set(r,b)}let d=0===f.size;d&&i.push(a);let p=null!==n?n[1]:null,h=null!==n?n[3]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?u:[null,null],loading:void 0!==h?h:null,rsc:v(),head:d?v():null,navigatedAt:t}}(e,t,r,n,u,l,a),dynamicRequestTree:i,children:null}}function p(e,t){t.then(t=>{let{flightData:r}=t;if("string"!=typeof r){for(let t of r){let{segmentPath:r,tree:n,seedData:l,head:a}=t;l&&function(e,t,r,n,l){let a=e;for(let e=0;e{h(e,t)})}function h(e,t){let r=e.node;if(null===r)return;let n=e.children;if(null===n)_(e.route,r,t);else for(let e of n.values())h(e,t);e.dynamicRequestTree=null}function _(e,t,r){let n=e[1],u=t.parallelRoutes;for(let e in n){let t=n[e],l=u.get(e);if(void 0===l)continue;let a=t[0],i=(0,o.createRouterCacheKey)(a),c=l.get(i);void 0!==c&&_(t,c,r)}let l=t.rsc;b(l)&&(null===r?l.resolve(null):l.reject(r));let a=t.head;b(a)&&a.resolve(null)}let y=Symbol();function b(e){return e&&e.tag===y}function v(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return r.status="pending",r.resolve=t=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,e(t))},r.reject=e=>{"pending"===r.status&&(r.status="rejected",r.reason=e,t(e))},r.tag=y,r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},74051:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,r,o,l,a,i,c){if(0===Object.keys(l[1]).length){r.head=i;return}for(let s in l[1]){let f,d=l[1][s],p=d[0],h=(0,n.createRouterCacheKey)(p),_=null!==a&&void 0!==a[2][s]?a[2][s]:null;if(o){let n=o.parallelRoutes.get(s);if(n){let o,l=(null==c?void 0:c.kind)==="auto"&&c.status===u.PrefetchCacheEntryStatus.reusable,a=new Map(n),f=a.get(h);o=null!==_?{lazyData:null,rsc:_[1],prefetchRsc:null,head:null,prefetchHead:null,loading:_[3],parallelRoutes:new Map(null==f?void 0:f.parallelRoutes),navigatedAt:t}:l&&f?{lazyData:f.lazyData,rsc:f.rsc,prefetchRsc:f.prefetchRsc,head:f.head,prefetchHead:f.prefetchHead,parallelRoutes:new Map(f.parallelRoutes),loading:f.loading}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(null==f?void 0:f.parallelRoutes),loading:null,navigatedAt:t},a.set(h,o),e(t,o,f,d,_||null,i,c),r.parallelRoutes.set(s,a);continue}}if(null!==_){let e=_[1],r=_[3];f={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:r,navigatedAt:t}}else f={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let y=r.parallelRoutes.get(s);y?y.set(h,f):r.parallelRoutes.set(s,new Map([[h,f]])),e(t,f,void 0,d,_,i,c)}}}});let n=r(68040),u=r(68081);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},75540:(e,t)=>{"use strict";function r(e,t){var r=e.length;for(e.push(t);0>>1,u=e[n];if(0>>1;no(i,r))co(s,i)?(e[n]=s,e[c]=r,n=c):(e[n]=i,e[a]=r,n=a);else if(co(s,r))e[n]=s,e[c]=r,n=c;else break}}return t}function o(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var l,a=performance;t.unstable_now=function(){return a.now()}}else{var i=Date,c=i.now();t.unstable_now=function(){return i.now()-c}}var s=[],f=[],d=1,p=null,h=3,_=!1,y=!1,b=!1,v=!1,g="function"==typeof setTimeout?setTimeout:null,m="function"==typeof clearTimeout?clearTimeout:null,R="undefined"!=typeof setImmediate?setImmediate:null;function E(e){for(var t=n(f);null!==t;){if(null===t.callback)u(f);else if(t.startTime<=e)u(f),t.sortIndex=t.expirationTime,r(s,t);else break;t=n(f)}}function O(e){if(b=!1,E(e),!y)if(null!==n(s))y=!0,P||(P=!0,l());else{var t=n(f);null!==t&&x(O,t.startTime-e)}}var P=!1,j=-1,T=5,S=-1;function M(){return!!v||!(t.unstable_now()-Se&&M());){var a=p.callback;if("function"==typeof a){p.callback=null,h=p.priorityLevel;var i=a(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof i){p.callback=i,E(e),r=!0;break t}p===n(s)&&u(s),E(e)}else u(s);p=n(s)}if(null!==p)r=!0;else{var c=n(f);null!==c&&x(O,c.startTime-e),r=!1}}break e}finally{p=null,h=o,_=!1}}}finally{r?l():P=!1}}}if("function"==typeof R)l=function(){R(w)};else if("undefined"!=typeof MessageChannel){var A=new MessageChannel,C=A.port2;A.port1.onmessage=w,l=function(){C.postMessage(null)}}else l=function(){g(w,0)};function x(e,r){j=g(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125a?(e.sortIndex=o,r(f,e),null===n(s)&&e===n(f)&&(b?(m(j),j=-1):b=!0,x(O,o-a))):(e.sortIndex=i,r(s,e),y||_||(y=!0,P||(P=!0,l()))),e},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},76251:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hmrRefreshReducer",{enumerable:!0,get:function(){return n}}),r(59815),r(54440),r(27545),r(47661),r(23551),r(9508),r(48643),r(81107),r(62254),r(68705);let n=function(e,t){return e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},76461:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return r}});var r=function(e){return e[e.SeeOther=303]="SeeOther",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},78198:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return u}});let n=r(61221);function u(e,t){let[r,u]=(0,n.useState)(()=>({tree:e,stateKey:t,next:null}));if(r.tree===e)return r;let o={tree:e,stateKey:t,next:null},l=1,a=r,i=o;for(;null!==a&&l<1;){if(a.stateKey===t){i.next=a.next;break}{l++;let e={tree:a.tree,stateKey:a.stateKey,next:null};i.next=e,i=e}a=a.next}return u(o),o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},79607:(e,t)=>{"use strict";function r(){return""}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDeploymentIdQueryOrEmptyString",{enumerable:!0,get:function(){return r}})},79926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createInitialRouterState",{enumerable:!0,get:function(){return s}});let n=r(54440),u=r(74051),o=r(73825),l=r(66265),a=r(68081),i=r(95079),c=r(91492);function s(e){var t,r;let{navigatedAt:s,initialFlightData:f,initialCanonicalUrlParts:d,initialParallelRoutes:p,location:h,couldBeIntercepted:_,postponed:y,prerendered:b}=e,v=d.join("/"),g=(0,c.getFlightDataPartsFromPath)(f[0]),{tree:m,seedData:R,head:E}=g,O={lazyData:null,rsc:null==R?void 0:R[1],prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:p,loading:null!=(t=null==R?void 0:R[3])?t:null,navigatedAt:s},P=h?(0,n.createHrefFromUrl)(h):v;(0,i.addRefreshMarkerToActiveParallelSegments)(m,P);let j=new Map;(null===p||0===p.size)&&(0,u.fillLazyItemsTillLeafWithHead)(s,O,void 0,m,R,E,void 0);let T={tree:m,cache:O,prefetchCache:j,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:P,nextUrl:null!=(r=(0,o.extractPathFromFlightRouterState)(m)||(null==h?void 0:h.pathname))?r:null};if(h){let e=new URL(""+h.pathname+h.search,h.origin);(0,l.createSeededPrefetchCacheEntry)({url:e,data:{flightData:[g],canonicalUrl:void 0,couldBeIntercepted:!!_,prerendered:b,postponed:y,staleTime:b&&1?l.STATIC_STALETIME_MS:-1},tree:T.tree,prefetchCache:T.prefetchCache,nextUrl:T.nextUrl,kind:b?a.PrefetchKind.FULL:a.PrefetchKind.AUTO})}return T}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},79944:(e,t,r)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(65716)},80139:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ROOT_SEGMENT_CACHE_KEY:function(){return o},ROOT_SEGMENT_REQUEST_KEY:function(){return u},appendSegmentCacheKeyPart:function(){return c},appendSegmentRequestKeyPart:function(){return a},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentCacheKeyPart:function(){return i},createSegmentRequestKeyPart:function(){return l}});let n=r(6374),u="",o="";function l(e){if("string"==typeof e)return e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0],r=e[2];return"$"+r+"$"+f(t)}function a(e,t,r){return e+"/"+("children"===t?r:"@"+f(t)+"/"+r)}function i(e,t){return"string"==typeof t?e:e+"$"+f(t[1])}function c(e,t,r){return e+"/"+("children"===t?r:"@"+f(t)+"/"+r)}let s=/^[a-zA-Z0-9\-_@]+$/;function f(e){return s.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return"__next"+e.replace(/\//g,".")+".txt"}},80642:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{METADATA_BOUNDARY_NAME:function(){return r},OUTLET_BOUNDARY_NAME:function(){return u},ROOT_LAYOUT_BOUNDARY_NAME:function(){return o},VIEWPORT_BOUNDARY_NAME:function(){return n}});let r="__next_metadata_boundary__",n="__next_viewport_boundary__",u="__next_outlet_boundary__",o="__next_root_layout_boundary__"},80848:(e,t,r)=>{"use strict";var n=r(79944),u={stream:!0},o=Object.prototype.hasOwnProperty,l=new Map;function a(e){var t=r(e);return"function"!=typeof t.then||"fulfilled"===t.status?null:(t.then(function(e){t.status="fulfilled",t.value=e},function(e){t.status="rejected",t.reason=e}),t)}function i(){}function c(e){for(var t=e[1],n=[],u=0;uf||35===f||114===f||120===f?(d=f,f=3,s++):(d=0,f=3);continue;case 2:44===(b=i[s++])?f=4:h=h<<4|(96i.length&&(b=-1)}var v=i.byteOffset+s;if(-1{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"setAttributesFromProps",{enumerable:!0,get:function(){return o}});let r={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"},n=["onLoad","onReady","dangerouslySetInnerHTML","children","onError","strategy","stylesheets"];function u(e){return["async","defer","noModule"].includes(e)}function o(e,t){for(let[o,l]of Object.entries(t)){if(!t.hasOwnProperty(o)||n.includes(o)||void 0===l)continue;let a=r[o]||o.toLowerCase();"SCRIPT"===e.tagName&&u(a)?e[a]=!!l:e.setAttribute(a,String(l)),(!1===l||"SCRIPT"===e.tagName&&u(a)&&(!l||"false"===l))&&(e.setAttribute(a,""),e.removeAttribute(a))}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},81107:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createEmptyCacheNode:function(){return x},createPrefetchURL:function(){return A},default:function(){return L},isExternalURL:function(){return w}});let n=r(17292),u=r(6313),o=r(97601),l=u._(r(61221)),a=r(57166),i=r(68081),c=r(54440),s=r(88395),f=r(49190),d=r(61431),p=r(32260),h=r(96021),_=r(92209),y=r(33974),b=r(97517),v=r(52997),g=r(69983),m=r(73825),R=r(2403),E=r(55461),O=r(87928),P=r(1279);r(32713);let j=n._(r(98212)),T=n._(r(9220)),S=r(60005),M={};function w(e){return e.origin!==window.location.origin}function A(e){let t;if((0,d.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,p.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error("Cannot prefetch '"+e+"' because it cannot be converted to a URL."),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return w(t)?null:t}function C(e){let{appRouterState:t}=e;return(0,l.useInsertionEffect)(()=>{let{tree:e,pushRef:r,canonicalUrl:n}=t,u={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:e};r.pendingPush&&(0,c.createHrefFromUrl)(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(u,"",n)):window.history.replaceState(u,"",n)},[t]),(0,l.useEffect)(()=>{},[t.nextUrl,t.tree]),null}function x(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function N(e){null==e&&(e={});let t=window.history.state,r=null==t?void 0:t.__NA;r&&(e.__NA=r);let n=null==t?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function U(e){let{headCacheNode:t}=e,r=null!==t?t.head:null,n=null!==t?t.prefetchHead:null,u=null!==n?n:r;return(0,l.useDeferredValue)(r,u)}function D(e){let t,{actionQueue:r,assetPrefix:n,globalError:u}=e,c=(0,f.useActionQueue)(r),{canonicalUrl:d}=c,{searchParams:p,pathname:R}=(0,l.useMemo)(()=>{let e=new URL(d,window.location.href);return{searchParams:e.searchParams,pathname:(0,g.hasBasePath)(e.pathname)?(0,v.removeBasePath)(e.pathname):e.pathname}},[d]);(0,l.useEffect)(()=>{function e(e){var t;e.persisted&&(null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE)&&(M.pendingMpaPath=void 0,(0,f.dispatchAppRouterAction)({type:i.ACTION_RESTORE,url:new URL(window.location.href),tree:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,l.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,P.isRedirectError)(t)){e.preventDefault();let r=(0,O.getURLFromRedirectError)(t);(0,O.getRedirectTypeFromError)(t)===P.RedirectType.push?E.publicAppRouterInstance.push(r,{}):E.publicAppRouterInstance.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:T}=c;if(T.mpaNavigation){if(M.pendingMpaPath!==d){let e=window.location;T.pendingPush?e.assign(d):e.replace(d),M.pendingMpaPath=d}throw b.unresolvedThenable}(0,l.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{var t;let r=window.location.href,n=null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,l.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:i.ACTION_RESTORE,url:new URL(null!=e?e:r,r),tree:n})})};window.history.pushState=function(t,n,u){return(null==t?void 0:t.__NA)||(null==t?void 0:t._N)||(t=N(t),u&&r(u)),e(t,n,u)},window.history.replaceState=function(e,n,u){return(null==e?void 0:e.__NA)||(null==e?void 0:e._N)||(e=N(e),u&&r(u)),t(e,n,u)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,l.startTransition)(()=>{(0,E.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:w,tree:A,nextUrl:x,focusAndScrollRef:D}=c,L=(0,l.useMemo)(()=>(0,y.findHeadInCache)(w,A[1]),[w,A]),I=(0,l.useMemo)(()=>(0,m.getSelectedParams)(A),[A]),k=(0,l.useMemo)(()=>({parentTree:A,parentCacheNode:w,parentSegmentPath:null,url:d}),[A,w,d]),H=(0,l.useMemo)(()=>({tree:A,focusAndScrollRef:D,nextUrl:x}),[A,D,x]);if(null!==L){let[e,r,n]=L;t=(0,o.jsx)(U,{headCacheNode:e},r)}else t=null;let B=(0,o.jsxs)(_.RedirectBoundary,{children:[t,(0,o.jsx)(S.RootLayoutBoundary,{children:w.rsc}),(0,o.jsx)(h.AppRouterAnnouncer,{tree:A})]});return B=(0,o.jsx)(j.default,{errorComponent:u[0],errorStyles:u[1],children:B}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C,{appRouterState:c}),(0,o.jsx)(F,{}),(0,o.jsx)(s.PathParamsContext.Provider,{value:I,children:(0,o.jsx)(s.PathnameContext.Provider,{value:R,children:(0,o.jsx)(s.SearchParamsContext.Provider,{value:p,children:(0,o.jsx)(a.GlobalLayoutRouterContext.Provider,{value:H,children:(0,o.jsx)(a.AppRouterContext.Provider,{value:E.publicAppRouterInstance,children:(0,o.jsx)(a.LayoutRouterContext.Provider,{value:k,children:B})})})})})})]})}function L(e){let{actionQueue:t,globalErrorState:r,assetPrefix:n}=e;(0,R.useNavFailureHandler)();let u=(0,o.jsx)(D,{actionQueue:t,assetPrefix:n,globalError:r});return(0,o.jsx)(j.default,{errorComponent:T.default,children:u})}let I=new Set,k=new Set;function F(){let[,e]=l.default.useState(0),t=I.size;return(0,l.useEffect)(()=>{let r=()=>e(e=>e+1);return k.add(r),t!==I.size&&r(),()=>{k.delete(r)}},[t,e]),[...I].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:""+e,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=I.size;return I.add(e),I.size!==t&&k.forEach(e=>e()),Promise.resolve()},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},81576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(79607);let n=r(30704);{let e=r.u;r.u=function(){for(var t=arguments.length,r=Array(t),u=0;u{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ErrorBoundary:function(){return f},ErrorBoundaryHandler:function(){return s}});let n=r(17292),u=r(97601),o=n._(r(61221)),l=r(48344),a=r(25199);r(2403);let i=r(91094),c=(0,r(61431).isBot)(window.navigator.userAgent);class s extends o.default.Component{static getDerivedStateFromError(e){if((0,a.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!c?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,u.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}}function f(e){let{errorComponent:t,errorStyles:r,errorScripts:n,children:o}=e,a=(0,l.useUntrackedPathname)();return t?(0,u.jsx)(s,{pathname:a,errorComponent:t,errorStyles:r,errorScripts:n,children:o}):(0,u.jsx)(u.Fragment,{children:o})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},81812:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(81576);let n=r(82341),u=r(88393);(0,n.appBootstrap)(()=>{let{hydrate:e}=r(12459);r(81107),r(53608),e(u)}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},82341:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"appBootstrap",{enumerable:!0,get:function(){return u}});let n=r(81003);function u(e){var t,r;t=self.__next_s,r=()=>{e()},t&&t.length?t.reduce((e,t)=>{let[r,u]=t;return e.then(()=>new Promise((e,t)=>{let o=document.createElement("script");u&&(0,n.setAttributesFromProps)(o,u),r?(o.src=r,o.onload=()=>e(),o.onerror=t):u&&(o.innerHTML=u.children,setTimeout(e)),document.head.appendChild(o)}))},Promise.resolve()).catch(e=>{console.error(e)}).then(()=>{r()}):r()}window.next={version:"15.5.21",appDir:!0},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},83535:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findSourceMapURL",{enumerable:!0,get:function(){return r}});let r=void 0;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},84127:(e,t,r)=>{"use strict";function n(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}r.r(t),r.d(t,{_:()=>n})},84657:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTTPAccessErrorStatus:function(){return r},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return u},getAccessFallbackErrorTypeByStatus:function(){return a},getAccessFallbackHTTPStatus:function(){return l},isHTTPAccessFallbackError:function(){return o}});let r={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},n=new Set(Object.values(r)),u="NEXT_HTTP_ERROR_FALLBACK";function o(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===u&&n.has(Number(r))}function l(e){return Number(e.digest.split(";")[1])}function a(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},85881:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=r(13320).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87715:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(24253),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87928:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return f},getRedirectTypeFromError:function(){return s},getURLFromRedirectError:function(){return c},permanentRedirect:function(){return i},redirect:function(){return a}});let n=r(76461),u=r(1279),o=void 0;function l(e,t,r){void 0===r&&(r=n.RedirectStatusCode.TemporaryRedirect);let o=Object.defineProperty(Error(u.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return o.digest=u.REDIRECT_ERROR_CODE+";"+t+";"+e+";"+r+";",o}function a(e,t){var r;throw null!=t||(t=(null==o||null==(r=o.getStore())?void 0:r.isAction)?u.RedirectType.push:u.RedirectType.replace),l(e,t,n.RedirectStatusCode.TemporaryRedirect)}function i(e,t){throw void 0===t&&(t=u.RedirectType.replace),l(e,t,n.RedirectStatusCode.PermanentRedirect)}function c(e){return(0,u.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function s(e){if(!(0,u.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function f(e){if(!(0,u.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},88126:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n=r(35784).unstable_rethrow;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},88393:(e,t,r)=>{"use strict";e.exports=r(69787)},88395:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathParamsContext:function(){return l},PathnameContext:function(){return o},SearchParamsContext:function(){return u}});let n=r(61221),u=(0,n.createContext)(null),o=(0,n.createContext)(null),l=(0,n.createContext)(null)},91009:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{SERVER_REFERENCE_ID_LENGTH:function(){return r},extractInfoFromServerReferenceId:function(){return u},mightBeServerReferenceId:function(){return n},omitUnusedArgs:function(){return o}});let r=42;function n(e){return e.length===r}function u(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function o(e,t){let r=Array(e.length);for(let n=0;n=6&&t.hasRestArgs)&&(r[n]=e[n]);return r}},91094:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HandleISRError",{enumerable:!0,get:function(){return n}});let r=void 0;function n(e){let{error:t}=e;if(r){let e=r.getStore();if((null==e?void 0:e.isRevalidate)||(null==e?void 0:e.isStaticGeneration))throw console.error(t),t}return null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},91492:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getFlightDataPartsFromPath:function(){return u},getNextFlightSegmentPath:function(){return o},normalizeFlightData:function(){return l},prepareFlightRouterStateForRequest:function(){return a}});let n=r(6374);function u(e){var t;let[r,n,u,o]=e.slice(-4),l=e.slice(0,-4);return{pathToSegment:l.slice(0,-1),segmentPath:l,segment:null!=(t=l[l.length-1])?t:"",tree:r,seedData:n,head:u,isHeadPartial:o,isRootRender:4===e.length}}function o(e){return e.slice(2)}function l(e){return"string"==typeof e?e:e.map(e=>u(e))}function a(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,u;let[o,l,a,i,c,s]=t,f="string"==typeof(r=o)&&r.startsWith(n.PAGE_SEGMENT_KEY+"?")?n.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(l))d[t]=e(r);let p=[f,d,null,(u=i)&&"refresh"!==u?i:null];return void 0!==c&&(p[4]=c),void 0!==s&&(p[5]=s),p}(e)))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},92209:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RedirectBoundary:function(){return f},RedirectErrorBoundary:function(){return s}});let n=r(6313),u=r(97601),o=n._(r(61221)),l=r(68702),a=r(87928),i=r(1279);function c(e){let{redirect:t,reset:r,redirectType:n}=e,u=(0,l.useRouter)();return(0,o.useEffect)(()=>{o.default.startTransition(()=>{n===i.RedirectType.push?u.push(t,{}):u.replace(t,{}),r()})},[t,n,r,u]),null}class s extends o.default.Component{static getDerivedStateFromError(e){if((0,i.isRedirectError)(e))return{redirect:(0,a.getURLFromRedirectError)(e),redirectType:(0,a.getRedirectTypeFromError)(e)};throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,u.jsx)(c,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}constructor(e){super(e),this.state={redirect:null,redirectType:null}}}function f(e){let{children:t}=e,r=(0,l.useRouter)();return(0,u.jsx)(s,{router:r,children:t})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},92248:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HEADER:function(){return n},FLIGHT_HEADERS:function(){return f},NEXT_ACTION_NOT_FOUND_HEADER:function(){return v},NEXT_DID_POSTPONE_HEADER:function(){return h},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return i},NEXT_HMR_REFRESH_HEADER:function(){return a},NEXT_IS_PRERENDER_HEADER:function(){return b},NEXT_REWRITTEN_PATH_HEADER:function(){return _},NEXT_REWRITTEN_QUERY_HEADER:function(){return y},NEXT_ROUTER_PREFETCH_HEADER:function(){return o},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_STALE_TIME_HEADER:function(){return p},NEXT_ROUTER_STATE_TREE_HEADER:function(){return u},NEXT_RSC_UNION_QUERY:function(){return d},NEXT_URL:function(){return c},RSC_CONTENT_TYPE_HEADER:function(){return s},RSC_HEADER:function(){return r}});let r="rsc",n="next-action",u="next-router-state-tree",o="next-router-prefetch",l="next-router-segment-prefetch",a="next-hmr-refresh",i="__next_hmr_refresh_hash__",c="next-url",s="text/x-component",f=[r,u,o,a,l],d="_rsc",p="x-nextjs-stale-time",h="x-nextjs-postponed",_="x-nextjs-rewritten-path",y="x-nextjs-rewritten-query",b="x-nextjs-prerender",v="x-nextjs-action-not-found";("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addRefreshMarkerToActiveParallelSegments:function(){return function e(t,r){let[n,u,,l]=t;for(let a in n.includes(o.PAGE_SEGMENT_KEY)&&"refresh"!==l&&(t[2]=r,t[3]="refresh"),u)e(u[a],r)}},refreshInactiveParallelSegments:function(){return l}});let n=r(48643),u=r(59815),o=r(6374);async function l(e){let t=new Set;await a({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function a(e){let{navigatedAt:t,state:r,updatedTree:o,updatedCache:l,includeNextUrl:i,fetchedSegments:c,rootTree:s=o,canonicalUrl:f}=e,[,d,p,h]=o,_=[];if(p&&p!==f&&"refresh"===h&&!c.has(p)){c.add(p);let e=(0,u.fetchServerResponse)(new URL(p,location.origin),{flightRouterState:[s[0],s[1],s[2],"refetch"],nextUrl:i?r.nextUrl:null}).then(e=>{let{flightData:r}=e;if("string"!=typeof r)for(let e of r)(0,n.applyFlightData)(t,l,l,e)});_.push(e)}for(let e in d){let n=a({navigatedAt:t,state:r,updatedTree:d[e],updatedCache:l,includeNextUrl:i,fetchedSegments:c,rootTree:s,canonicalUrl:f});_.push(n)}await Promise.all(_)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95799:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{UnrecognizedActionError:function(){return r},unstable_isUnrecognizedActionError:function(){return n}});class r extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function n(e){return!!(e&&"object"==typeof e&&e instanceof r)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},96021:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AppRouterAnnouncer",{enumerable:!0,get:function(){return l}});let n=r(61221),u=r(79944),o="next-route-announcer";function l(e){let{tree:t}=e,[r,l]=(0,n.useState)(null);(0,n.useEffect)(()=>(l(function(){var e;let t=document.getElementsByName(o)[0];if(null==t||null==(e=t.shadowRoot)?void 0:e.childNodes[0])return t.shadowRoot.childNodes[0];{let e=document.createElement(o);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(o)[0];(null==e?void 0:e.isConnected)&&document.body.removeChild(e)}),[]);let[a,i]=(0,n.useState)(""),c=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==c.current&&c.current!==e&&i(e),c.current=e},[t]),r?(0,u.createPortal)(a,r):null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97390:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return u},getProperError:function(){return o}});let n=r(45160);function u(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function o(e){return u(e)?e:Object.defineProperty(Error((0,n.isPlainObject)(e)?function(e){let t=new WeakSet;return JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r})}(e):e+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},97517:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unresolvedThenable",{enumerable:!0,get:function(){return r}});let r={then:()=>{}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97601:(e,t,r)=>{"use strict";e.exports=r(27795)},98212:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(17292),u=r(97601);r(61221);let o=n._(r(13013)),l=r(81751),a=(0,r(61431).isBot)(window.navigator.userAgent);function i(e){let{children:t,errorComponent:r,errorStyles:n,errorScripts:i}=e;return a?(0,u.jsx)(o.default,{children:t}):(0,u.jsx)(l.ErrorBoundary,{errorComponent:r,errorStyles:n,errorScripts:i,children:t})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99188:(e,t,r)=>{"use strict";var n=r(6638),u=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),_=Symbol.iterator,y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,v={};function g(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||y}function m(){}function R(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||y}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=g.prototype;var E=R.prototype=new m;E.constructor=R,b(E,g.prototype),E.isPureReactComponent=!0;var O=Array.isArray;function P(){}var j={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function S(e,t,r){var n=r.ref;return{$$typeof:u,type:e,key:t,ref:void 0!==n?n:null,props:r}}function M(e){return"object"==typeof e&&null!==e&&e.$$typeof===u}var w=/\/+/g;function A(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function C(e,t,r){if(null==e)return e;var n=[],l=0;return!function e(t,r,n,l,a){var i,c,s,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case u:case o:d=!0;break;case h:return e((d=t._init)(t._payload),r,n,l,a)}}if(d)return a=a(t),d=""===l?"."+A(t,0):l,O(a)?(n="",null!=d&&(n=d.replace(w,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(M(a)&&(i=a,c=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(w,"$&/")+"/")+d,a=S(i.type,c,i.props)),r.push(a)),1;d=0;var p=""===l?".":l+":";if(O(t))for(var y=0;y{t.d(r,{diagram:()=>g});var a=t(46597),n=t(84492);t(94191),t(69301);var s=t(98999),l=t(91158),p=t(89321),i=(0,p.Pz)().RailroadPeg.parser.LangiumParser,o=(0,l.K)(e=>{let r=e.alternatives.map(u);return 1===r.length?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),u=(0,l.K)(e=>{let r=e.elements.map(m);return 1===r.length?r[0]:{type:"sequence",elements:r}},"transformSequence"),m=(0,l.K)(e=>{let r=c(e.suffix);return e.operator?{type:"special",text:"&"===e.operator?`&${d(r)}`:`!${d(r)}`}:r},"transformPrefix"),d=(0,l.K)(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),c=(0,l.K)(e=>{let r=f(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),f=(0,l.K)(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return o(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),y=(0,l.K)(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),P=(0,l.K)(e=>{(0,n.S)(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(e=>a.db.addRule(y(e)))},"populateDb"),g={parser:{parse:(0,l.K)(e=>{a.db.clear(),s.R.debug("[PEG Parser] Starting Langium parse");let r=i.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p.zg(r);let t=r.value;s.R.debug("[PEG Parser] Parsed rules:",t.rules.length),P(t),s.R.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a.db}},db:a.db,renderer:a.U,styles:a.$}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/4238.bd3eb957dc3dee41.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/4238.bd3eb957dc3dee41.js
deleted file mode 100644
index c077be929..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/4238.bd3eb957dc3dee41.js
+++ /dev/null
@@ -1,287 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4238],{18568:function(t){t.exports=function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,s=/\d\d/,n=/\d\d?/,r=/\d*[^-_:/,()\s\d]+/,a={},o=function(t){return(t*=1)+(t>68?1900:2e3)},c=function(t){return function(e){this[t]=+e}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t||"Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),i=60*e[1]+(+e[2]||0);return 0===i?0:"+"===e[0]?-i:i}(t)}],d=function(t){var e=a[t];return e&&(e.indexOf?e:e.s.concat(e.f))},u=function(t,e){var i,s=a.meridiem;if(s){for(var n=1;n<=24;n+=1)if(t.indexOf(s(n,0,e))>-1){i=n>12;break}}else i=t===(e?"pm":"PM");return i},h={A:[r,function(t){this.afternoon=u(t,!1)}],a:[r,function(t){this.afternoon=u(t,!0)}],Q:[i,function(t){this.month=3*(t-1)+1}],S:[i,function(t){this.milliseconds=100*t}],SS:[s,function(t){this.milliseconds=10*t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[n,c("seconds")],ss:[n,c("seconds")],m:[n,c("minutes")],mm:[n,c("minutes")],H:[n,c("hours")],h:[n,c("hours")],HH:[n,c("hours")],hh:[n,c("hours")],D:[n,c("day")],DD:[s,c("day")],Do:[r,function(t){var e=a.ordinal,i=t.match(/\d+/);if(this.day=i[0],e)for(var s=1;s<=31;s+=1)e(s).replace(/\[|\]/g,"")===t&&(this.day=s)}],w:[n,c("week")],ww:[s,c("week")],M:[n,c("month")],MM:[s,c("month")],MMM:[r,function(t){var e=d("months"),i=(d("monthsShort")||e.map(function(t){return t.slice(0,3)})).indexOf(t)+1;if(i<1)throw Error();this.month=i%12||i}],MMMM:[r,function(t){var e=d("months").indexOf(t)+1;if(e<1)throw Error();this.month=e%12||e}],Y:[/[+-]?\d+/,c("year")],YY:[s,function(t){this.year=o(t)}],YYYY:[/\d{4}/,c("year")],Z:l,ZZ:l};return function(i,s,n){n.p.customParseFormat=!0,i&&i.parseTwoDigitYear&&(o=i.parseTwoDigitYear);var r=s.prototype,c=r.parse;r.parse=function(i){var s=i.date,r=i.utc,o=i.args;this.$u=r;var l=o[1];if("string"==typeof l){var d=!0===o[2],u=!0===o[3],f=o[2];u&&(f=o[2]),a=this.$locale(),!d&&f&&(a=n.Ls[f]),this.$d=function(i,s,n,r){try{if(["x","X"].indexOf(s)>-1)return new Date(("X"===s?1e3:1)*i);var o=(function(i){var s,n;s=i,n=a&&a.formats;for(var r=(i=s.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(e,i,s){var r=s&&s.toUpperCase();return i||n[s]||t[s]||n[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(t,e,i){return e||i.slice(1)})})).match(e),o=r.length,c=0;c0?l-1:p.getMonth());var b,$=u||0,w=f||0,_=m||0,D=k||0;return y?new Date(Date.UTC(T,x,v,$,w,_,D+60*y.offset*1e3)):n?new Date(Date.UTC(T,x,v,$,w,_,D)):(b=new Date(T,x,v,$,w,_,D),g&&(b=r(b).week(g).toDate()),b)}catch(t){return new Date("")}}(s,l,r,n),this.init(),f&&!0!==f&&(this.$L=this.locale(f).$L),(d||u)&&s!=this.format(l)&&(this.$d=new Date("")),a={}}else if(l instanceof Array)for(var m=l.length,k=1;k<=m;k+=1){o[1]=l[k-1];var y=n.apply(this,o);if(y.isValid()){this.$d=y.$d,this.$L=y.$L,this.init();break}k===m&&(this.$d=new Date(""))}else c.call(this,i)}}}()},49183:function(t){t.exports=function(){"use strict";var t,e,i=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,s=/\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,n={years:31536e6,months:2628e6,days:864e5,hours:36e5,minutes:6e4,seconds:1e3,milliseconds:1,weeks:6048e5},r=function(t){return t instanceof u},a=function(t,e,i){return new u(t,i,e.$l)},o=function(t){return e.p(t)+"s"},c=function(t){return t<0},l=function(t){return c(t)?Math.ceil(t):Math.floor(t)},d=function(t,e){return t?c(t)?{negative:!0,format:""+Math.abs(t)+e}:{negative:!1,format:""+t+e}:{negative:!1,format:""}},u=function(){function c(t,e,s){var r=this;if(this.$d={},this.$l=s,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),e)return a(t*n[o(e)],this);if("number"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if("object"==typeof t)return Object.keys(t).forEach(function(e){r.$d[o(e)]=t[e]}),this.calMilliseconds(),this;if("string"==typeof t){var c=t.match(i);if(c){var l=c.slice(2).map(function(t){return null!=t?Number(t):0});return this.$d.years=l[0],this.$d.months=l[1],this.$d.weeks=l[2],this.$d.days=l[3],this.$d.hours=l[4],this.$d.minutes=l[5],this.$d.seconds=l[6],this.calMilliseconds(),this}}return this}var u=c.prototype;return u.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce(function(e,i){return e+(t.$d[i]||0)*n[i]},0)},u.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=l(t/31536e6),t%=31536e6,this.$d.months=l(t/2628e6),t%=2628e6,this.$d.days=l(t/864e5),t%=864e5,this.$d.hours=l(t/36e5),t%=36e5,this.$d.minutes=l(t/6e4),t%=6e4,this.$d.seconds=l(t/1e3),t%=1e3,this.$d.milliseconds=t},u.toISOString=function(){var t=d(this.$d.years,"Y"),e=d(this.$d.months,"M"),i=+this.$d.days||0;this.$d.weeks&&(i+=7*this.$d.weeks);var s=d(i,"D"),n=d(this.$d.hours,"H"),r=d(this.$d.minutes,"M"),a=this.$d.seconds||0;this.$d.milliseconds&&(a+=this.$d.milliseconds/1e3,a=Math.round(1e3*a)/1e3);var o=d(a,"S"),c=t.negative||e.negative||s.negative||n.negative||r.negative||o.negative,l=n.format||r.format||o.format?"T":"",u=(c?"-":"")+"P"+t.format+e.format+s.format+l+n.format+r.format+o.format;return"P"===u||"-P"===u?"P0D":u},u.toJSON=function(){return this.toISOString()},u.format=function(t){var i={Y:this.$d.years,YY:e.s(this.$d.years,2,"0"),YYYY:e.s(this.$d.years,4,"0"),M:this.$d.months,MM:e.s(this.$d.months,2,"0"),D:this.$d.days,DD:e.s(this.$d.days,2,"0"),H:this.$d.hours,HH:e.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:e.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:e.s(this.$d.seconds,2,"0"),SSS:e.s(this.$d.milliseconds,3,"0")};return(t||"YYYY-MM-DDTHH:mm:ss").replace(s,function(t,e){return e||String(i[t])})},u.as=function(t){return this.$ms/n[o(t)]},u.get=function(t){var e=this.$ms,i=o(t);return"milliseconds"===i?e%=1e3:e="weeks"===i?l(e/n[i]):this.$d[i],e||0},u.add=function(t,e,i){var s;return s=e?t*n[o(e)]:r(t)?t.$ms:a(t,this).$ms,a(this.$ms+s*(i?-1:1),this)},u.subtract=function(t,e){return this.add(t,e,!0)},u.locale=function(t){var e=this.clone();return e.$l=t,e},u.clone=function(){return a(this.$ms,this)},u.humanize=function(e){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!e)},u.valueOf=function(){return this.asMilliseconds()},u.milliseconds=function(){return this.get("milliseconds")},u.asMilliseconds=function(){return this.as("milliseconds")},u.seconds=function(){return this.get("seconds")},u.asSeconds=function(){return this.as("seconds")},u.minutes=function(){return this.get("minutes")},u.asMinutes=function(){return this.as("minutes")},u.hours=function(){return this.get("hours")},u.asHours=function(){return this.as("hours")},u.days=function(){return this.get("days")},u.asDays=function(){return this.as("days")},u.weeks=function(){return this.get("weeks")},u.asWeeks=function(){return this.as("weeks")},u.months=function(){return this.get("months")},u.asMonths=function(){return this.as("months")},u.years=function(){return this.get("years")},u.asYears=function(){return this.as("years")},c}(),h=function(t,e,i){return t.add(e.years()*i,"y").add(e.months()*i,"M").add(e.days()*i,"d").add(e.hours()*i,"h").add(e.minutes()*i,"m").add(e.seconds()*i,"s").add(e.milliseconds()*i,"ms")};return function(i,s,n){t=n,e=n().$utils(),n.duration=function(t,e){return a(t,{$l:n.locale()},e)},n.isDuration=r;var o=s.prototype.add,c=s.prototype.subtract;s.prototype.add=function(t,e){return r(t)?h(this,t,1):o.bind(this)(t,e)},s.prototype.subtract=function(t,e){return r(t)?h(this,t,-1):c.bind(this)(t,e)}}}()},74238:(t,e,i)=>{"use strict";i.d(e,{diagram:()=>tP});var s,n,r,a=i(13892),o=i(69301),c=i(98999),l=i(91158),d=i(76162),u=i(53660),h=i(90468),f=i(18568),m=i(80714),k=i(49183),y=i(70668),g=function(){var t=(0,l.K)(function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],i=[1,26],s=[1,27],n=[1,28],r=[1,29],a=[1,30],o=[1,31],c=[1,32],d=[1,33],u=[1,34],h=[1,9],f=[1,10],m=[1,11],k=[1,12],y=[1,13],g=[1,14],p=[1,15],v=[1,16],T=[1,19],x=[1,20],b=[1,21],$=[1,22],w=[1,23],_=[1,25],D=[1,35],S={trace:(0,l.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:(0,l.K)(function(t,e,i,s,n,r,a){var o=r.length-1;switch(n){case 1:return r[o-1];case 2:case 6:case 7:this.$=[];break;case 3:r[o-1].push(r[o]),this.$=r[o-1];break;case 4:case 5:this.$=r[o];break;case 8:s.setWeekday("monday");break;case 9:s.setWeekday("tuesday");break;case 10:s.setWeekday("wednesday");break;case 11:s.setWeekday("thursday");break;case 12:s.setWeekday("friday");break;case 13:s.setWeekday("saturday");break;case 14:s.setWeekday("sunday");break;case 15:s.setWeekend("friday");break;case 16:s.setWeekend("saturday");break;case 17:s.setDateFormat(r[o].substr(11)),this.$=r[o].substr(11);break;case 18:s.enableInclusiveEndDates(),this.$=r[o].substr(18);break;case 19:s.TopAxis(),this.$=r[o].substr(8);break;case 20:s.setAxisFormat(r[o].substr(11)),this.$=r[o].substr(11);break;case 21:s.setTickInterval(r[o].substr(13)),this.$=r[o].substr(13);break;case 22:s.setExcludes(r[o].substr(9)),this.$=r[o].substr(9);break;case 23:s.setIncludes(r[o].substr(9)),this.$=r[o].substr(9);break;case 24:s.setTodayMarker(r[o].substr(12)),this.$=r[o].substr(12);break;case 27:s.setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 28:this.$=r[o].trim(),s.setAccTitle(this.$);break;case 29:case 30:this.$=r[o].trim(),s.setAccDescription(this.$);break;case 31:s.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 33:s.addTask(r[o-1],r[o]),this.$="task";break;case 34:this.$=r[o-1],s.setClickEvent(r[o-1],r[o],null);break;case 35:this.$=r[o-2],s.setClickEvent(r[o-2],r[o-1],r[o]);break;case 36:this.$=r[o-2],s.setClickEvent(r[o-2],r[o-1],null),s.setLink(r[o-2],r[o]);break;case 37:this.$=r[o-3],s.setClickEvent(r[o-3],r[o-2],r[o-1]),s.setLink(r[o-3],r[o]);break;case 38:this.$=r[o-2],s.setClickEvent(r[o-2],r[o],null),s.setLink(r[o-2],r[o-1]);break;case 39:this.$=r[o-3],s.setClickEvent(r[o-3],r[o-1],r[o]),s.setLink(r[o-3],r[o-2]);break;case 40:this.$=r[o-1],s.setLink(r[o-1],r[o]);break;case 41:case 47:this.$=r[o-1]+" "+r[o];break;case 42:case 43:case 45:this.$=r[o-2]+" "+r[o-1]+" "+r[o];break;case 44:case 46:this.$=r[o-3]+" "+r[o-2]+" "+r[o-1]+" "+r[o]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:i,13:s,14:n,15:r,16:a,17:o,18:c,19:18,20:d,21:u,22:h,23:f,24:m,25:k,26:y,27:g,28:p,29:v,30:T,31:x,33:b,35:$,36:w,37:24,38:_,40:D},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:i,13:s,14:n,15:r,16:a,17:o,18:c,19:18,20:d,21:u,22:h,23:f,24:m,25:k,26:y,27:g,28:p,29:v,30:T,31:x,33:b,35:$,36:w,37:24,38:_,40:D},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:(0,l.K)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,l.K)(function(t){var e=this,i=[0],s=[],n=[null],r=[],a=this.table,o="",c=0,d=0,u=0,h=r.slice.call(arguments,1),f=Object.create(this.lexer),m={};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(m[k]=this.yy[k]);f.setInput(t,m),m.lexer=f,m.parser=this,void 0===f.yylloc&&(f.yylloc={});var y=f.yylloc;r.push(y);var g=f.options&&f.options.ranges;function p(){var t;return"number"!=typeof(t=s.pop()||f.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof m.parseError?this.parseError=m.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K)(function(t){i.length=i.length-2*t,n.length=n.length-t,r.length=r.length-t},"popStack"),(0,l.K)(p,"lex");for(var v,T,x,b,$,w,_,D,S,C={};;){if(x=i[i.length-1],this.defaultActions[x]?b=this.defaultActions[x]:(null==v&&(v=p()),b=a[x]&&a[x][v]),void 0===b||!b.length||!b[0]){var M="";for(w in S=[],a[x])this.terminals_[w]&&w>2&&S.push("'"+this.terminals_[w]+"'");M=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+S.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==v?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(M,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:y,expected:S})}if(b[0]instanceof Array&&b.length>1)throw Error("Parse Error: multiple actions possible at state: "+x+", token: "+v);switch(b[0]){case 1:i.push(v),n.push(f.yytext),r.push(f.yylloc),i.push(b[1]),v=null,T?(v=T,T=null):(d=f.yyleng,o=f.yytext,c=f.yylineno,y=f.yylloc,u>0&&u--);break;case 2:if(_=this.productions_[b[1]][1],C.$=n[n.length-_],C._$={first_line:r[r.length-(_||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(_||1)].first_column,last_column:r[r.length-1].last_column},g&&(C._$.range=[r[r.length-(_||1)].range[0],r[r.length-1].range[1]]),void 0!==($=this.performAction.apply(C,[o,d,c,m,b[1],n,r].concat(h))))return $;_&&(i=i.slice(0,-1*_*2),n=n.slice(0,-1*_),r=r.slice(0,-1*_)),i.push(this.productions_[b[1]][0]),n.push(C.$),r.push(C._$),D=a[i[i.length-2]][i[i.length-1]],i.push(D);break;case 3:return!0}}return!0},"parse")};function C(){this.yy={}}return S.lexer={EOF:1,parseError:(0,l.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,l.K)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,l.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,l.K)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===s.length?this.yylloc.first_column:0)+s[s.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K)(function(){return this._more=!0,this},"more"),reject:(0,l.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,l.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,l.K)(function(t,e){var i,s,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var r in n)this[r]=n[r];return!1},"test_match"),next:(0,l.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,s,n=this._currentRules(),r=0;re[0].length)){if(e=i,s=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[r])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,l.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,l.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,l.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,l.K)(function(t,e,i,s){switch(i){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),31;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),33;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:case 15:case 18:case 21:case 24:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:case 9:case 10:case 12:case 13:break;case 11:return 10;case 14:this.begin("href");break;case 16:return 43;case 17:this.begin("callbackname");break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 22:return 42;case 23:this.begin("click");break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}},(0,l.K)(C,"Parser"),C.prototype=S,S.Parser=C,new C}();g.parser=g,u.extend(h),u.extend(f),u.extend(m);var p={friday:5,saturday:6},v="",T="",x=void 0,b="",$=[],w=[],_=new Map,D=[],S=[],C="",M="",K=["active","done","crit","milestone","vert"],Y=[],E="",L=!1,O=!1,A="sunday",I="saturday",F=0,W=(0,l.K)(function(){D=[],S=[],C="",Y=[],tp=0,s=void 0,n=void 0,tb=[],v="",T="",M="",x=void 0,b="",$=[],w=[],L=!1,O=!1,F=0,_=new Map,E="",(0,o.IU)(),A="sunday",I="saturday"},"clear"),P=(0,l.K)(function(t){E=t},"setDiagramId"),N=(0,l.K)(function(t){T=t},"setAxisFormat"),H=(0,l.K)(function(){return T},"getAxisFormat"),z=(0,l.K)(function(t){x=t},"setTickInterval"),B=(0,l.K)(function(){return x},"getTickInterval"),R=(0,l.K)(function(t){b=t},"setTodayMarker"),G=(0,l.K)(function(){return b},"getTodayMarker"),j=(0,l.K)(function(t){v=t},"setDateFormat"),U=(0,l.K)(function(){L=!0},"enableInclusiveEndDates"),V=(0,l.K)(function(){return L},"endDatesAreInclusive"),Z=(0,l.K)(function(){O=!0},"enableTopAxis"),X=(0,l.K)(function(){return O},"topAxisEnabled"),q=(0,l.K)(function(t){M=t},"setDisplayMode"),Q=(0,l.K)(function(){return M},"getDisplayMode"),J=(0,l.K)(function(){return v},"getDateFormat"),tt=(0,l.K)((t,e)=>[...new Set([...t,...e.toLowerCase().split(/[\s,]+/).filter(t=>""!==t)])],"mergeTokens"),te=(0,l.K)(function(t){$=tt($,t)},"setIncludes"),ti=(0,l.K)(function(){return $},"getIncludes"),ts=(0,l.K)(function(t){w=tt(w,t)},"setExcludes"),tn=(0,l.K)(function(){return w},"getExcludes"),tr=(0,l.K)(function(){return _},"getLinks"),ta=(0,l.K)(function(t){C=t,D.push(t)},"addSection"),to=(0,l.K)(function(){return D},"getSections"),tc=(0,l.K)(function(){let t=tS(),e=0;for(;!t&&e<10;)t=tS(),e++;return S=tb},"getTasks"),tl=(0,l.K)(function(t,e,i,s){let n=t.format(e.trim()),r=t.format("YYYY-MM-DD");return!(s.includes(n)||s.includes(r))&&(!!(i.includes("weekends")&&(t.isoWeekday()===p[I]||t.isoWeekday()===p[I]+1)||i.includes(t.format("dddd").toLowerCase()))||i.includes(n)||i.includes(r))},"isInvalidDate"),td=(0,l.K)(function(t){A=t},"setWeekday"),tu=(0,l.K)(function(){return A},"getWeekday"),th=(0,l.K)(function(t){I=t},"setWeekend"),tf=(0,l.K)(function(t,e,i,s){let n;if(!i.length||t.manualEndTime)return;let[r,a]=tm(n=(n=t.startTime instanceof Date?u(t.startTime):u(t.startTime,e,!0)).add(1,"d"),t.endTime instanceof Date?u(t.endTime):u(t.endTime,e,!0),e,i,s);t.endTime=r.toDate(),t.renderEndTime=a},"checkTaskDates"),tm=(0,l.K)(function(t,e,i,s,n){let r=!1,a=null,o=e.add(1e4,"d");for(;t<=e;){if(r||(a=e.toDate()),(r=tl(t,i,s,n))&&(e=e.add(1,"d"))>o)throw Error("Failed to find a valid date that was not excluded by `excludes` after 10,000 iterations.");t=t.add(1,"d")}return[e,a]},"fixTaskDates"),tk=(0,l.K)(function(t,e,i){if(i=i.trim(),(0,l.K)(t=>{let e=t.trim();return"x"===e||"X"===e},"isTimestampFormat")(e)&&/^\d+$/.test(i))return new Date(Number(i));let s=/^after\s+(?[\d\w- ]+)/.exec(i);if(null!==s){let t=null;for(let e of s.groups.ids.split(" ")){let i=t_(e);void 0!==i&&(!t||i.endTime>t.endTime)&&(t=i)}if(t)return t.endTime;let e=new Date;return e.setHours(0,0,0,0),e}let n=u(i,e.trim(),!0);if(n.isValid())return n.toDate();{c.R.debug("Invalid date:"+i),c.R.debug("With date format:"+e.trim());let t=new Date(i);if(void 0===t||isNaN(t.getTime())||-1e4>t.getFullYear()||t.getFullYear()>1e4)throw Error("Invalid date:"+i);return t}},"getStartDate"),ty=(0,l.K)(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),tg=(0,l.K)(function(t,e,i,s=!1){i=i.trim();let n=/^until\s+(?[\d\w- ]+)/.exec(i);if(null!==n){let t=null;for(let e of n.groups.ids.split(" ")){let i=t_(e);void 0!==i&&(!t||i.startTime{window.open(i,"_self")}),_.set(t,i))}),tM(t,"clickable")},"setLink"),tM=(0,l.K)(function(t,e){t.split(",").forEach(function(t){let i=t_(t);void 0!==i&&i.classes.push(e)})},"setClass"),tK=(0,l.K)(function(t,e,i){if("loose"!==(0,o.D7)().securityLevel||void 0===e)return;let s=[];if("string"==typeof i){s=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t{a._K.runFunc(e,...s)})},"setClickFun"),tY=(0,l.K)(function(t,e){Y.push(function(){let i=E?`${E}-${t}`:t,s=document.querySelector(`[id="${i}"]`);null!==s&&s.addEventListener("click",function(){e()})},function(){let i=E?`${E}-${t}`:t,s=document.querySelector(`[id="${i}-text"]`);null!==s&&s.addEventListener("click",function(){e()})})},"pushFun"),tE=(0,l.K)(function(t,e,i){t.split(",").forEach(function(t){tK(t,e,i)}),tM(t,"clickable")},"setClickEvent"),tL=(0,l.K)(function(t){Y.forEach(function(e){e(t)})},"bindFunctions"),tO={getConfig:(0,l.K)(()=>(0,o.D7)().gantt,"getConfig"),clear:W,setDateFormat:j,getDateFormat:J,enableInclusiveEndDates:U,endDatesAreInclusive:V,enableTopAxis:Z,topAxisEnabled:X,setAxisFormat:N,getAxisFormat:H,setTickInterval:z,getTickInterval:B,setTodayMarker:R,getTodayMarker:G,setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,setDiagramId:P,setDisplayMode:q,getDisplayMode:Q,setAccDescription:o.EI,getAccDescription:o.m7,addSection:ta,getSections:to,getTasks:tc,addTask:tw,findTaskById:t_,addTaskOrg:tD,setIncludes:te,getIncludes:ti,setExcludes:ts,getExcludes:tn,setClickEvent:tE,setLink:tC,getLinks:tr,bindFunctions:tL,parseDuration:ty,isInvalidDate:tl,setWeekday:td,getWeekday:tu,setWeekend:th};function tA(t,e,i){let s=!0;for(;s;)s=!1,i.forEach(function(i){let n=RegExp("^\\s*"+i+"\\s*$");t[0].match(n)&&(e[i]=!0,t.shift(1),s=!0)})}(0,l.K)(tA,"getTaskTags"),u.extend(k);var tI=(0,l.K)(function(){c.R.debug("Something is calling, setConf, remove the call")},"setConf"),tF={monday:y.ABi,tuesday:y.PGu,wednesday:y.GuW,thursday:y.Mol,friday:y.TUC,saturday:y.rGn,sunday:y.YPH},tW=(0,l.K)((t,e)=>{let i=[...t].map(()=>-1/0),s=[...t].sort((t,e)=>t.startTime-e.startTime||t.order-e.order),n=0;for(let t of s)for(let s=0;s=i[s]){i[s]=t.endTime,t.order=s+e,s>n&&(n=s);break}return n},"getMaxIntersections"),tP={parser:g,db:tO,renderer:{setConf:tI,draw:(0,l.K)(function(t,e,i,s){let n,a=(0,o.D7)().gantt;s.db.setDiagramId(e);let d=(0,o.D7)().securityLevel;"sandbox"===d&&(n=(0,y.Ltv)("#i"+e));let h="sandbox"===d?(0,y.Ltv)(n.nodes()[0].contentDocument.body):(0,y.Ltv)("body"),f="sandbox"===d?n.nodes()[0].contentDocument:document,m=f.getElementById(e);void 0===(r=m.parentElement.offsetWidth)&&(r=1200),void 0!==a.useWidth&&(r=a.useWidth);let k=s.db.getTasks(),g=k.filter(t=>!t.vert),p=[];for(let t of g)p.push(t.type);p=Y(p);let v={},T=2*a.topPadding;if("compact"===s.db.getDisplayMode()||"compact"===a.displayMode){let t={};for(let e of g)void 0===t[e.section]?t[e.section]=[e]:t[e.section].push(e);let e=0;for(let i of Object.keys(t)){let s=tW(t[i],e)+1;e+=s,T+=s*(a.barHeight+a.barGap),v[i]=s}}else for(let t of(T+=g.length*(a.barHeight+a.barGap),p))v[t]=g.filter(e=>e.type===t).length;m.setAttribute("viewBox","0 0 "+r+" "+T);let x=h.select(`[id="${e}"]`),b=(0,y.w7C)().domain([(0,y.jkA)(k,function(t){return t.startTime}),(0,y.T9B)(k,function(t){return t.endTime})]).rangeRound([0,r-a.leftPadding-a.rightPadding]);function $(t,e){let i=t.startTime,s=e.startTime,n=0;return i>s?n=1:it.vert===e.vert?0:t.vert?1:-1);let u=t.filter(t=>!t.vert),h=[...new Set(u.map(t=>t.order))].map(t=>u.find(e=>e.order===t));x.append("g").selectAll("rect").data(h).enter().append("rect").attr("x",0).attr("y",function(t,e){return t.order*i+n-2}).attr("width",function(){return d-a.rightPadding/2}).attr("height",i).attr("class",function(t){for(let[e,i]of p.entries())if(t.type===i)return"section section"+e%a.numberSectionStyles;return"section section0"}).enter();let f=x.append("g").selectAll("rect").data(t).enter(),m=s.db.getLinks();if(f.append("rect").attr("id",function(t){return e+"-"+t.id}).attr("rx",3).attr("ry",3).attr("x",function(t){return t.milestone?b(t.startTime)+r+.5*(b(t.endTime)-b(t.startTime))-.5*c:b(t.startTime)+r}).attr("y",function(t,e){return(e=t.order,t.vert)?a.gridLineStartPadding:e*i+n}).attr("width",function(t){return t.milestone?c:t.vert?.08*c:b(t.renderEndTime||t.endTime)-b(t.startTime)}).attr("height",function(t){return t.vert?u.length*(a.barHeight+a.barGap)+2*a.barHeight:c}).attr("transform-origin",function(t,e){return e=t.order,(b(t.startTime)+r+.5*(b(t.endTime)-b(t.startTime))).toString()+"px "+(e*i+n+.5*c).toString()+"px"}).attr("class",function(t){let e="";t.classes.length>0&&(e=t.classes.join(" "));let i=0;for(let[e,s]of p.entries())t.type===s&&(i=e%a.numberSectionStyles);let s="";return t.active?t.crit?s+=" activeCrit":s=" active":t.done?s=t.crit?" doneCrit":" done":t.crit&&(s+=" crit"),0===s.length&&(s=" task"),t.milestone&&(s=" milestone "+s),t.vert&&(s=" vert "+s),s+=i,"task"+(s+=" "+e)}),f.append("text").attr("id",function(t){return e+"-"+t.id+"-text"}).text(function(t){return t.task}).attr("font-size",a.fontSize).attr("x",function(t){let e=b(t.startTime),i=b(t.renderEndTime||t.endTime);if(t.milestone&&(e+=.5*(b(t.endTime)-b(t.startTime))-.5*c,i=e+c),t.vert)return b(t.startTime)+r;let s=this.getBBox().width;return s>i-e?i+s+1.5*a.leftPadding>d?e+r-5:i+r+5:(i-e)/2+e+r}).attr("y",function(t,e){return t.vert?a.gridLineStartPadding+u.length*(a.barHeight+a.barGap)+60:t.order*i+a.barHeight/2+(a.fontSize/2-2)+n}).attr("text-height",c).attr("class",function(t){let e=b(t.startTime),i=b(t.endTime);t.milestone&&(i=e+c);let s=this.getBBox().width,n="";t.classes.length>0&&(n=t.classes.join(" "));let r=0;for(let[e,i]of p.entries())t.type===i&&(r=e%a.numberSectionStyles);let o="";return(t.active&&(o=t.crit?"activeCritText"+r:"activeText"+r),t.done?o=t.crit?o+" doneCritText"+r:o+" doneText"+r:t.crit&&(o=o+" critText"+r),t.milestone&&(o+=" milestoneText"),t.vert&&(o+=" vertText"),s>i-e)?i+s+1.5*a.leftPadding>d?n+" taskTextOutsideLeft taskTextOutside"+r+" "+o:n+" taskTextOutsideRight taskTextOutside"+r+" "+o+" width-"+s:n+" taskText taskText"+r+" "+o+" width-"+s}),"sandbox"===(0,o.D7)().securityLevel){let t=(0,y.Ltv)("#i"+e).nodes()[0].contentDocument;f.filter(function(t){return m.has(t.id)}).each(function(i){var s=t.querySelector("#"+CSS.escape(e+"-"+i.id)),n=t.querySelector("#"+CSS.escape(e+"-"+i.id+"-text"));let r=s.parentNode;var a=t.createElement("a");a.setAttribute("xlink:href",m.get(i.id)),a.setAttribute("target","_top"),r.appendChild(a),a.appendChild(s),a.appendChild(n)})}}function D(t,i,n,r,o,l,d,h){let f,m;if(0===d.length&&0===h.length)return;for(let{startTime:t,endTime:e}of l)(void 0===f||tm)&&(m=e);if(!f||!m)return;if(u(m).diff(u(f),"year")>5)return void c.R.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");let k=s.db.getDateFormat(),y=[],g=null,p=u(f);for(;p.valueOf()<=m;)s.db.isInvalidDate(p,k,d,h)?g?g.end=p:g={start:p,end:p}:g&&(y.push(g),g=null),p=p.add(1,"d");x.append("g").selectAll("rect").data(y).enter().append("rect").attr("id",t=>e+"-exclude-"+t.start.format("YYYY-MM-DD")).attr("x",t=>b(t.start.startOf("day"))+n).attr("y",a.gridLineStartPadding).attr("width",t=>b(t.end.endOf("day"))-b(t.start.startOf("day"))).attr("height",o-i-a.gridLineStartPadding).attr("transform-origin",function(e,i){return(b(e.start)+n+.5*(b(e.end)-b(e.start))).toString()+"px "+(i*t+.5*o).toString()+"px"}).attr("class","exclude-range")}function S(t,e,i,s){if(i<=0||t>e)return 1/0;let n=u.duration({[s??"day"]:i}).asMilliseconds();return n<=0?1/0:Math.ceil((e-t)/n)}function C(t,e,i,n){let r,o=s.db.getDateFormat(),l=s.db.getAxisFormat();r=l||("D"===o?"%d":a.axisFormat??"%Y-%m-%d");let d=(0,y.l78)(b).tickSize(-n+e+a.gridLineStartPadding).tickFormat((0,y.DCK)(r)),u=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(s.db.getTickInterval()||a.tickInterval);if(null!==u){let t=parseInt(u[1],10);if(isNaN(t)||t<=0)c.R.warn(`Invalid tick interval value: "${u[1]}". Skipping custom tick interval.`);else{let e=u[2],i=s.db.getWeekday()||a.weekday,n=b.domain(),r=S(n[0],n[1],t,e);if(r>1e4)c.R.warn(`The tick interval "${t}${e}" would generate ${r} ticks, which exceeds the maximum allowed (10000). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(e){case"millisecond":d.ticks(y.t6C.every(t));break;case"second":d.ticks(y.ucG.every(t));break;case"minute":d.ticks(y.wXd.every(t));break;case"hour":d.ticks(y.Agd.every(t));break;case"day":d.ticks(y.UAC.every(t));break;case"week":d.ticks(tF[i].every(t));break;case"month":d.ticks(y.Ui6.every(t))}}}if(x.append("g").attr("class","grid").attr("transform","translate("+t+", "+(n-50)+")").call(d).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),s.db.topAxisEnabled()||a.topAxis){let i=(0,y.tlR)(b).tickSize(-n+e+a.gridLineStartPadding).tickFormat((0,y.DCK)(r));if(null!==u){let t=parseInt(u[1],10);if(isNaN(t)||t<=0)c.R.warn(`Invalid tick interval value: "${u[1]}". Skipping custom tick interval.`);else{let e=u[2],n=s.db.getWeekday()||a.weekday,r=b.domain();if(1e4>=S(r[0],r[1],t,e))switch(e){case"millisecond":i.ticks(y.t6C.every(t));break;case"second":i.ticks(y.ucG.every(t));break;case"minute":i.ticks(y.wXd.every(t));break;case"hour":i.ticks(y.Agd.every(t));break;case"day":i.ticks(y.UAC.every(t));break;case"week":i.ticks(tF[n].every(t));break;case"month":i.ticks(y.Ui6.every(t))}}}x.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(i).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function M(t,e){let i=0,s=Object.keys(v).map(t=>[t,v[t]]);x.append("g").selectAll("text").data(s).enter().append(function(t){let e=t[0].split(o.Y2.lineBreakRegex),i=-(e.length-1)/2,s=f.createElementNS("http://www.w3.org/2000/svg","text");for(let[t,n]of(s.setAttribute("dy",i+"em"),e.entries())){let e=f.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttribute("alignment-baseline","central"),e.setAttribute("x","10"),t>0&&e.setAttribute("dy","1em"),e.textContent=n,s.appendChild(e)}return s}).attr("x",10).attr("y",function(n,r){if(!(r>0))return n[1]*t/2+e;for(let a=0;a`
- .mermaid-main-font {
- font-family: ${t.fontFamily};
- }
-
- .exclude-range {
- fill: ${t.excludeBkgColor};
- }
-
- .section {
- stroke: none;
- opacity: 0.2;
- }
-
- .section0 {
- fill: ${t.sectionBkgColor};
- }
-
- .section2 {
- fill: ${t.sectionBkgColor2};
- }
-
- .section1,
- .section3 {
- fill: ${t.altSectionBkgColor};
- opacity: 0.2;
- }
-
- .sectionTitle0 {
- fill: ${t.titleColor};
- }
-
- .sectionTitle1 {
- fill: ${t.titleColor};
- }
-
- .sectionTitle2 {
- fill: ${t.titleColor};
- }
-
- .sectionTitle3 {
- fill: ${t.titleColor};
- }
-
- .sectionTitle {
- text-anchor: start;
- font-family: ${t.fontFamily};
- }
-
-
- /* Grid and axis */
-
- .grid .tick {
- stroke: ${t.gridColor};
- opacity: 0.8;
- shape-rendering: crispEdges;
- }
-
- .grid .tick text {
- font-family: ${t.fontFamily};
- fill: ${t.textColor};
- }
-
- .grid path {
- stroke-width: 0;
- }
-
-
- /* Today line */
-
- .today {
- fill: none;
- stroke: ${t.todayLineColor};
- stroke-width: 2px;
- }
-
-
- /* Task styling */
-
- /* Default task */
-
- .task {
- stroke-width: 2;
- }
-
- .taskText {
- text-anchor: middle;
- font-family: ${t.fontFamily};
- }
-
- .taskTextOutsideRight {
- fill: ${t.taskTextDarkColor};
- text-anchor: start;
- font-family: ${t.fontFamily};
- }
-
- .taskTextOutsideLeft {
- fill: ${t.taskTextDarkColor};
- text-anchor: end;
- }
-
-
- /* Special case clickable */
-
- .task.clickable {
- cursor: pointer;
- }
-
- .taskText.clickable {
- cursor: pointer;
- fill: ${t.taskTextClickableColor} !important;
- font-weight: bold;
- }
-
- .taskTextOutsideLeft.clickable {
- cursor: pointer;
- fill: ${t.taskTextClickableColor} !important;
- font-weight: bold;
- }
-
- .taskTextOutsideRight.clickable {
- cursor: pointer;
- fill: ${t.taskTextClickableColor} !important;
- font-weight: bold;
- }
-
-
- /* Specific task settings for the sections*/
-
- .taskText0,
- .taskText1,
- .taskText2,
- .taskText3 {
- fill: ${t.taskTextColor};
- }
-
- .task0,
- .task1,
- .task2,
- .task3 {
- fill: ${t.taskBkgColor};
- stroke: ${t.taskBorderColor};
- }
-
- .taskTextOutside0,
- .taskTextOutside2
- {
- fill: ${t.taskTextOutsideColor};
- }
-
- .taskTextOutside1,
- .taskTextOutside3 {
- fill: ${t.taskTextOutsideColor};
- }
-
-
- /* Active task */
-
- .active0,
- .active1,
- .active2,
- .active3 {
- fill: ${t.activeTaskBkgColor};
- stroke: ${t.activeTaskBorderColor};
- }
-
- .activeText0,
- .activeText1,
- .activeText2,
- .activeText3 {
- fill: ${t.taskTextDarkColor} !important;
- }
-
-
- /* Completed task */
-
- .done0,
- .done1,
- .done2,
- .done3 {
- stroke: ${t.doneTaskBorderColor};
- fill: ${t.doneTaskBkgColor};
- stroke-width: 2;
- }
-
- .doneText0,
- .doneText1,
- .doneText2,
- .doneText3 {
- fill: ${t.taskTextDarkColor} !important;
- }
-
- /* Done task text displayed outside the bar sits against the diagram background,
- not against the done-task bar, so it must use the outside/contrast color. */
- .doneText0.taskTextOutsideLeft,
- .doneText0.taskTextOutsideRight,
- .doneText1.taskTextOutsideLeft,
- .doneText1.taskTextOutsideRight,
- .doneText2.taskTextOutsideLeft,
- .doneText2.taskTextOutsideRight,
- .doneText3.taskTextOutsideLeft,
- .doneText3.taskTextOutsideRight {
- fill: ${t.taskTextOutsideColor} !important;
- }
-
-
- /* Tasks on the critical line */
-
- .crit0,
- .crit1,
- .crit2,
- .crit3 {
- stroke: ${t.critBorderColor};
- fill: ${t.critBkgColor};
- stroke-width: 2;
- }
-
- .activeCrit0,
- .activeCrit1,
- .activeCrit2,
- .activeCrit3 {
- stroke: ${t.critBorderColor};
- fill: ${t.activeTaskBkgColor};
- stroke-width: 2;
- }
-
- .doneCrit0,
- .doneCrit1,
- .doneCrit2,
- .doneCrit3 {
- stroke: ${t.critBorderColor};
- fill: ${t.doneTaskBkgColor};
- stroke-width: 2;
- cursor: pointer;
- shape-rendering: crispEdges;
- }
-
- .milestone {
- transform: rotate(45deg) scale(0.8,0.8);
- }
-
- .milestoneText {
- font-style: italic;
- }
- .doneCritText0,
- .doneCritText1,
- .doneCritText2,
- .doneCritText3 {
- fill: ${t.taskTextDarkColor} !important;
- }
-
- /* Done-crit task text outside the bar \u2014 same reasoning as doneText above. */
- .doneCritText0.taskTextOutsideLeft,
- .doneCritText0.taskTextOutsideRight,
- .doneCritText1.taskTextOutsideLeft,
- .doneCritText1.taskTextOutsideRight,
- .doneCritText2.taskTextOutsideLeft,
- .doneCritText2.taskTextOutsideRight,
- .doneCritText3.taskTextOutsideLeft,
- .doneCritText3.taskTextOutsideRight {
- fill: ${t.taskTextOutsideColor} !important;
- }
-
- .vert {
- stroke: ${t.vertLineColor};
- }
-
- .vertText {
- font-size: 15px;
- text-anchor: middle;
- fill: ${t.vertLineColor} !important;
- }
-
- .activeCritText0,
- .activeCritText1,
- .activeCritText2,
- .activeCritText3 {
- fill: ${t.taskTextDarkColor} !important;
- }
-
- .titleText {
- text-anchor: middle;
- font-size: 18px;
- fill: ${t.titleColor||t.textColor};
- font-family: ${t.fontFamily};
- }
-`,"getStyles")}},80714:function(t){t.exports=function(t,e){var i=e.prototype,s=i.format;i.format=function(t){var e=this,i=this.$locale();if(!this.isValid())return s.bind(this)(t);var n=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return i.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return i.ordinal(e.week(),"W");case"w":case"ww":return n.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return n.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return n.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}});return s.bind(this)(r)}}},90468:function(t){t.exports=function(t,e,i){var s=function(t){return t.add(4-t.isoWeekday(),"day")},n=e.prototype;n.isoWeekYear=function(){return s(this).year()},n.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),"day");var e,n,r,a=s(this),o=(e=this.isoWeekYear(),r=4-(n=(this.$u?i.utc:i)().year(e).startOf("year")).isoWeekday(),n.isoWeekday()>4&&(r+=7),n.add(r,"day"));return a.diff(o,"week")+1},n.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var r=n.startOf;n.startOf=function(t,e){var i=this.$utils(),s=!!i.u(e)||e;return"isoweek"===i.p(t)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):r.bind(this)(t,e)}}}}]);
\ No newline at end of file
diff --git a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/443.c8f79794b9249b4f.js b/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/443.c8f79794b9249b4f.js
deleted file mode 100644
index b5c9c7eef..000000000
--- a/agentic-ai-studio/src/main/resources/META-INF/resources/chatui/_next/static/chunks/443.c8f79794b9249b4f.js
+++ /dev/null
@@ -1,74 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[443],{586:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(12783),i="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=i&&"object"==typeof module&&module&&!module.nodeType&&module,o=a&&a.exports===i&&n.A.process;let s=function(){try{var t=a&&a.require&&a.require("util").types;if(t)return t;return o&&o.binding&&o.binding("util")}catch(t){}}()},1320:(t,e,r)=>{"use strict";r.d(e,{A:()=>u});let n=function(t,e){for(var r=-1,n=Array(t);++r{"use strict";r.d(e,{A:()=>i});var n=Object.prototype;let i=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},3449:(t,e,r)=>{"use strict";r.d(e,{A:()=>v});var n=r(84746),i=r(73986),a=(0,n.A)(i.A,"DataView"),o=r(83812),s=(0,n.A)(i.A,"Promise"),l=r(60106),c=(0,n.A)(i.A,"WeakMap"),u=r(10270),h=r(25046),f="[object Map]",d="[object Promise]",p="[object Set]",g="[object WeakMap]",m="[object DataView]",y=(0,h.A)(a),b=(0,h.A)(o.A),x=(0,h.A)(s),_=(0,h.A)(l.A),w=(0,h.A)(c),k=u.A;(a&&k(new a(new ArrayBuffer(1)))!=m||o.A&&k(new o.A)!=f||s&&k(s.resolve())!=d||l.A&&k(new l.A)!=p||c&&k(new c)!=g)&&(k=function(t){var e=(0,u.A)(t),r="[object Object]"==e?t.constructor:void 0,n=r?(0,h.A)(r):"";if(n)switch(n){case y:return m;case b:return f;case x:return d;case _:return p;case w:return g}return e});let v=k},3675:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(32450),i=r(83812),a=r(60486);function o(t){var e=this.__data__=new n.A(t);this.size=e.size}o.prototype.clear=function(){this.__data__=new n.A,this.size=0},o.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},o.prototype.get=function(t){return this.__data__.get(t)},o.prototype.has=function(t){return this.__data__.has(t)},o.prototype.set=function(t,e){var r=this.__data__;if(r instanceof n.A){var o=r.__data__;if(!i.A||o.length<199)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new a.A(o)}return r.set(t,e),this.size=r.size,this};let s=o},4286:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=/^(?:0|[1-9]\d*)$/;let i=function(t,e){var r=typeof t;return!!(e=null==e?0x1fffffffffffff:e)&&("number"==r||"symbol"!=r&&n.test(t))&&t>-1&&t%1==0&&t{"use strict";r.d(e,{A:()=>h});var n=r(70754),i=r(9769),a=r(60486);function o(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw TypeError("Expected a function");var r=function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var o=t.apply(this,n);return r.cache=a.set(i,o)||a,o};return r.cache=new(o.Cache||a.A),r}o.Cache=a.A;var s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,l=/\\(\\)?/g,c=function(t){var e=o(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(s,function(t,r,n,i){e.push(n?i.replace(l,"$1"):r||t)}),e}),u=r(53814);let h=function(t,e){return(0,n.A)(t)?t:(0,i.A)(t,e)?[t]:c((0,u.A)(t))}},5663:(t,e,r)=>{"use strict";r.d(e,{Fr:()=>h,GX:()=>u,KX:()=>c,WW:()=>s,ue:()=>a});var n=r(69301),i=r(91158),a=(0,i.K)(t=>{let{handDrawnSeed:e}=(0,n.D7)();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),o=(0,i.K)(t=>Array.isArray(t)?t:t?t.split(";").map(t=>t.trim()).filter(Boolean):[],"normalizeStyleList"),s=(0,i.K)(t=>{let e=l([...t.cssCompiledStyles||[],...t.cssStyles||[],...o(t.labelStyle)]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),l=(0,i.K)(t=>{let e=new Map;return t.forEach(t=>{let[r,n]=t.split(":");e.set(r.trim(),n?.trim())}),e},"styles2Map"),c=(0,i.K)(t=>"color"===t||"font-size"===t||"font-family"===t||"font-weight"===t||"font-style"===t||"text-decoration"===t||"text-align"===t||"text-transform"===t||"line-height"===t||"letter-spacing"===t||"word-spacing"===t||"text-shadow"===t||"text-overflow"===t||"white-space"===t||"word-wrap"===t||"word-break"===t||"overflow-wrap"===t||"hyphens"===t,"isLabelStyle"),u=(0,i.K)(t=>{let{stylesArray:e}=s(t),r=[],n=[],i=[],a=[];return e.forEach(t=>{let e=t[0];c(e)?r.push(t.join(":")+" !important"):(n.push(t.join(":")+" !important"),e.includes("stroke")&&i.push(t.join(":")+" !important"),"fill"===e&&a.push(t.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),h=(0,i.K)((t,e)=>{let{themeVariables:r,handDrawnSeed:i}=(0,n.D7)(),{nodeBorder:a,mainBkg:o}=r,{stylesMap:l}=s(t);return Object.assign({roughness:.7,fill:l.get("fill")||o,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:l.get("stroke")||a,seed:i,strokeWidth:l.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:f(l.get("stroke-dasharray"))},e)},"userNodeOverrides"),f=(0,i.K)(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(1===e.length){let t=isNaN(e[0])?0:e[0];return[t,t]}return[isNaN(e[0])?0:e[0],isNaN(e[1])?0:e[1]]},"getStrokeDashArray")},6787:(t,e,r)=>{"use strict";r.d(e,{A:()=>a});let n=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)};var i=Math.max;let a=function(t,e,r){return e=i(void 0===e?t.length-1:e,0),function(){for(var a=arguments,o=-1,s=i(a.length-e,0),l=Array(s);++o{"use strict";r.d(e,{A:()=>a});var n=r(25866),i=r(70897);let a=(t,e,r)=>{let a=i.A.parse(t),o=a[e],s=n.A.channel.clamp[e](o+r);return o!==s&&(a[e]=s),i.A.stringify(a)}},9769:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(70754),i=r(88997),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;let s=function(t,e){if((0,n.A)(t))return!1;var r=typeof t;return!!("number"==r||"symbol"==r||"boolean"==r||null==t||(0,i.A)(t))||o.test(t)||!a.test(t)||null!=e&&t in Object(e)}},10160:(t,e,r)=>{var n;!function(){var e={initialize:function(){this._tasks=new Map},mutate:function(t,e){return i(this,"mutate",t,e)},measure:function(t,e){return i(this,"measure",t,e)},clear:function(t){var e=this._tasks,r=e.get(t);this.fastdom.clear(r),e.delete(t)}};function i(t,e,r,n){var i,a=t._tasks,o=t.fastdom,s=new Promise(function(t,l){i=o[e](function(){a.delete(s);try{t(n?r.call(n):r())}catch(t){l(t)}},n)});return a.set(s,i),s}void 0===(n=(function(){return e}).call(e,r,e,t))||(t.exports=n)}()},10270:(t,e,r)=>{"use strict";r.d(e,{A:()=>h});var n=r(68550),i=Object.prototype,a=i.hasOwnProperty,o=i.toString,s=n.A?n.A.toStringTag:void 0;let l=function(t){var e=a.call(t,s),r=t[s];try{t[s]=void 0;var n=!0}catch(t){}var i=o.call(t);return n&&(e?t[s]=r:delete t[s]),i};var c=Object.prototype.toString,u=n.A?n.A.toStringTag:void 0;let h=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?l(t):c.call(t)}},11232:(t,e,r)=>{"use strict";r.d(e,{IU:()=>S,Jo:()=>F,T_:()=>L,UQ:()=>M,a6:()=>T,g0:()=>tf,hq:()=>p,jP:()=>$,lP:()=>A});var n=r(13031),i=r(69981),a=r(5663),o=r(82142),s=r(13892),l=r(69301),c=r(98999),u=r(91158),h=r(70668),f=r(99788),d=(0,u.K)((t,e)=>{if(e)return"translate("+-t.width/2+", "+-t.height/2+")";let r=t.x??0,n=t.y??0;return"translate("+-(r+t.width/2)+", "+-(n+t.height/2)+")"},"computeLabelTransform"),p={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4,arrow_barb:0,arrow_barb_neo:5.5},g={arrow_point:4,arrow_cross:12.5,arrow_circle:12.5};function m(t,e){if(void 0===t||void 0===e)return{angle:0,deltaX:0,deltaY:0};t=y(t),e=y(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],o=i-r,s=a-n;return{angle:Math.atan(s/o),deltaX:o,deltaY:s}}(0,u.K)(m,"calculateDeltaAndAngle");var y=(0,u.K)(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),b=(0,u.K)(t=>({x:(0,u.K)(function(e,r,n){let i=0,a=y(n[0]).x=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(p,t.arrowTypeEnd)){let{angle:e,deltaX:r}=m(n[n.length-1],n[n.length-2]);i=p[t.arrowTypeEnd]*Math.cos(e)*(r>=0?1:-1)}let o=Math.abs(y(e).x-y(n[n.length-1]).x),s=Math.abs(y(e).y-y(n[n.length-1]).y),l=Math.abs(y(e).x-y(n[0]).x),c=Math.abs(y(e).y-y(n[0]).y),u=p[t.arrowTypeStart],h=p[t.arrowTypeEnd];if(o0&&s0&&c=0?1:-1)}else if(r===n.length-1&&Object.hasOwn(p,t.arrowTypeEnd)){let{angle:e,deltaY:r}=m(n[n.length-1],n[n.length-2]);i=p[t.arrowTypeEnd]*Math.abs(Math.sin(e))*(r>=0?1:-1)}let o=Math.abs(y(e).y-y(n[n.length-1]).y),s=Math.abs(y(e).x-y(n[n.length-1]).x),l=Math.abs(y(e).y-y(n[0]).y),c=Math.abs(y(e).x-y(n[0]).x),u=p[t.arrowTypeStart],h=p[t.arrowTypeEnd];if(o0&&s