diff --git a/.env.example b/.env.example
index e97361a5c..dd74c68c0 100644
--- a/.env.example
+++ b/.env.example
@@ -6,6 +6,12 @@
# Decide to use https / wss secure protocols
# CCAT_CORE_USE_SECURE_PROTOCOLS=true
+# Uvicorn and FastAPI operating behind https proxy
+# CCAT_HTTPS_PROXY_MODE=true
+
+# Comma separated list of IPs to trust with proxy headers. A wildcard '*' means always trust.
+# CCAT_CORS_FORWARDED_ALLOW_IPS="*"
+
# Protect endpoints with an access token
# CCAT_API_KEY=meow
# CCAT_API_KEY_WS=meow2
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 40f6996fa..6b48d5ff1 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -23,8 +23,8 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Cat up
- run: docker-compose up -d
+ run: docker compose up -d
- name: Test
run: docker exec cheshire_cat_core python -m pytest --color=yes .
- name: Cat down
- run: docker-compose down
+ run: docker compose down
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 31c8e6020..8a5eee71a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
# Changelog
+## 1.7.1 ( 2024-08-01 )
+
+New in version 1.7
+
+- User system
+- permission system
+- JWT support
+- Custom Auth support
+- White Rabbit
+- StrayCat.classify
+
## 1.5.0 ( 2024-03-07 )
New in version 1.5.0: **Sir Punctilious Cat, the IV**!
diff --git a/compose.yml b/compose.yml
index 33cdd8fee..815bf1084 100644
--- a/compose.yml
+++ b/compose.yml
@@ -6,8 +6,8 @@ services:
context: ./core
container_name: cheshire_cat_core
# Uncomment the two lines below to use your .env (see .env.example)
- # env_file:
- # - .env
+ #env_file:
+ # - .env
ports:
- ${CCAT_CORE_PORT:-1865}:80
- 5678:5678 # only for development purposes (take away in production)
diff --git a/core/cat/agents/__init__.py b/core/cat/agents/__init__.py
new file mode 100644
index 000000000..0e9f772eb
--- /dev/null
+++ b/core/cat/agents/__init__.py
@@ -0,0 +1,3 @@
+from .base_agent import BaseAgent, AgentOutput
+
+__all__ = ['BaseAgent', 'AgentOutput']
\ No newline at end of file
diff --git a/core/cat/agents/base_agent.py b/core/cat/agents/base_agent.py
index 33822a102..f94155caa 100644
--- a/core/cat/agents/base_agent.py
+++ b/core/cat/agents/base_agent.py
@@ -1,12 +1,11 @@
from typing import List
from abc import ABC, abstractmethod
-from langchain_core.utils import get_colored_text
from cat.utils import BaseModelDict
class AgentOutput(BaseModelDict):
- output: str
+ output: str | None = None
intermediate_steps: List = []
return_direct: bool = False
@@ -15,25 +14,4 @@ class BaseAgent(ABC):
@abstractmethod
async def execute(*args, **kwargs) -> AgentOutput:
- pass
-
- # TODO: this is here to debug langchain, take it away
- def _log_prompt(self, langchain_prompt, title):
- print("\n")
- print(get_colored_text(f"==================== {title} ====================", "green"))
- for m in langchain_prompt.messages:
- print(get_colored_text(type(m).__name__, "green"))
- print(m.content)
- print(get_colored_text("========================================", "green"))
- return langchain_prompt
-
- # TODO: this is here to debug langchain, take it away
- def _log_output(self, langchain_output, title):
- print("\n")
- print(get_colored_text(f"==================== {title} ====================", "blue"))
- if hasattr(langchain_output, 'content'):
- print(langchain_output.content)
- else:
- print(langchain_output)
- print(get_colored_text("========================================", "blue"))
- return langchain_output
\ No newline at end of file
+ pass
\ No newline at end of file
diff --git a/core/cat/agents/form_agent.py b/core/cat/agents/form_agent.py
new file mode 100644
index 000000000..d393c8fdf
--- /dev/null
+++ b/core/cat/agents/form_agent.py
@@ -0,0 +1,38 @@
+import traceback
+from cat.experimental.form import CatFormState
+from cat.agents import BaseAgent, AgentOutput
+from cat.log import log
+
+class FormAgent(BaseAgent):
+
+ async def execute(self, stray) -> AgentOutput:
+
+ # get active form from working memory
+ active_form = stray.working_memory.active_form
+
+ if not active_form:
+ # no active form
+ return AgentOutput()
+ elif active_form._state == CatFormState.CLOSED:
+ # form is closed, delete it from working memory
+ stray.working_memory.active_form = None
+ return AgentOutput()
+ else:
+ # continue form
+ try:
+ form_output = active_form.next() # form should be async and should be awaited
+ return AgentOutput(
+ output=form_output["output"],
+ return_direct=True, # we assume forms always do a return_direct
+ intermediate_steps=[
+ ((active_form.name, ""), form_output["output"])
+ ]
+ )
+
+ except Exception as e:
+ log.error(e)
+ traceback.print_exc()
+ return AgentOutput()
+
+
+
diff --git a/core/cat/agents/main_agent.py b/core/cat/agents/main_agent.py
index a099d739f..7ea5a0226 100644
--- a/core/cat/agents/main_agent.py
+++ b/core/cat/agents/main_agent.py
@@ -8,7 +8,7 @@
from cat.looking_glass import prompts
from cat.utils import verbal_timedelta, BaseModelDict
from cat.env import get_env
-from cat.agents.base_agent import BaseAgent, AgentOutput
+from cat.agents import BaseAgent, AgentOutput
from cat.agents.memory_agent import MemoryAgent
from cat.agents.procedures_agent import ProceduresAgent
@@ -51,8 +51,10 @@ async def execute(self, stray) -> AgentOutput:
fast_reply = self.mad_hatter.execute_hook(
"agent_fast_reply", fast_reply, cat=stray
)
- if len(fast_reply.keys()) > 0:
+ if isinstance(fast_reply, AgentOutput):
return fast_reply
+ if isinstance(fast_reply, dict) and "output" in fast_reply:
+ return AgentOutput(**fast_reply)
# obtain prompt parts from plugins
prompt_prefix = self.mad_hatter.execute_hook(
@@ -114,14 +116,15 @@ def format_agent_input(self, stray):
)
# format conversation history to be inserted in the prompt
- # conversation_history_formatted_content = stray.stringify_chat_history()
+ # TODOV2: take away
+ conversation_history_formatted_content = stray.stringify_chat_history()
return BaseModelDict(**{
- "input": stray.working_memory.user_message_json.text, # TODO: deprecate, since it is included in chat history
"episodic_memory": episodic_memory_formatted_content,
"declarative_memory": declarative_memory_formatted_content,
- # "chat_history": conversation_history_formatted_content,
"tools_output": "",
+ "input": stray.working_memory.user_message_json.text, # TODOV2: take away
+ "chat_history": conversation_history_formatted_content, # TODOV2: take away
})
def agent_prompt_episodic_memories(
diff --git a/core/cat/agents/memory_agent.py b/core/cat/agents/memory_agent.py
index 47bacf1d0..2308c483c 100644
--- a/core/cat/agents/memory_agent.py
+++ b/core/cat/agents/memory_agent.py
@@ -5,33 +5,40 @@
from langchain_core.output_parsers.string import StrOutputParser
from cat.looking_glass.callbacks import NewTokenHandler, ModelInteractionHandler
-from cat.agents.base_agent import BaseAgent, AgentOutput
+from cat.agents import BaseAgent, AgentOutput
+from cat import utils
+
class MemoryAgent(BaseAgent):
async def execute(self, stray, prompt_prefix, prompt_suffix) -> AgentOutput:
-
- final_prompt = ChatPromptTemplate(
+
+ prompt_variables = stray.working_memory.agent_input.model_dump()
+ sys_prompt = prompt_prefix + prompt_suffix
+
+ # ensure prompt variables and placeholders match
+ prompt_variables, sys_prompt = utils.match_prompt_variables(prompt_variables, sys_prompt)
+
+ prompt = ChatPromptTemplate(
messages=[
SystemMessagePromptTemplate.from_template(
- template=prompt_prefix + prompt_suffix
+ template=sys_prompt
),
*(stray.langchainfy_chat_history()),
]
)
- memory_chain = (
- final_prompt
- | RunnableLambda(lambda x: self._log_prompt(x, "MAIN PROMPT"))
+ chain = (
+ prompt
+ | RunnableLambda(lambda x: utils.langchain_log_prompt(x, "MAIN PROMPT"))
| stray._llm
- | RunnableLambda(lambda x: self._log_output(x, "MAIN PROMPT OUTPUT"))
+ | RunnableLambda(lambda x: utils.langchain_log_output(x, "MAIN PROMPT OUTPUT"))
| StrOutputParser()
)
- output = memory_chain.invoke(
+ output = chain.invoke(
# convert to dict before passing to langchain
- # TODO: ensure dict keys and prompt placeholders map, so there are no issues on mismatches
- stray.working_memory.agent_input.model_dump(),
+ prompt_variables,
config=RunnableConfig(callbacks=[NewTokenHandler(stray), ModelInteractionHandler(stray, self.__class__.__name__)])
)
diff --git a/core/cat/agents/procedures_agent.py b/core/cat/agents/procedures_agent.py
index bfe79cc36..86baa1b39 100644
--- a/core/cat/agents/procedures_agent.py
+++ b/core/cat/agents/procedures_agent.py
@@ -1,45 +1,36 @@
-import json
import traceback
import random
-from typing import List, Dict, Union
-from copy import deepcopy
+from typing import Dict
-from langchain.agents import AgentExecutor
from langchain.prompts import ChatPromptTemplate
from langchain_core.prompts.chat import SystemMessagePromptTemplate
-from langchain_core.runnables import RunnableConfig, RunnablePassthrough, RunnableLambda
+from langchain_core.runnables import RunnableConfig, RunnableLambda
-from cat.agents.base_agent import BaseAgent, AgentOutput
+from cat.agents import BaseAgent, AgentOutput
+from cat.agents.form_agent import FormAgent
from cat.looking_glass import prompts
-from cat.looking_glass.output_parser import ChooseProcedureOutputParser
-from cat.experimental.form import CatForm, CatFormState
+from cat.looking_glass.output_parser import ChooseProcedureOutputParser, LLMAction
+from cat.experimental.form import CatForm
from cat.mad_hatter.decorators.tool import CatTool
from cat.mad_hatter.mad_hatter import MadHatter
from cat.mad_hatter.plugin import Plugin
from cat.log import log
from cat.looking_glass.callbacks import ModelInteractionHandler
+from cat import utils
-"""
-Agent API:
-
-.execute(stray) -> {
- "return_direct": bool, # if True, the agent maanger will return the output directly and block chains
- "intermediate_steps": List[Tuple[Tuple[Tool, ToolInput], str]] # list of intermediate steps executed
-}
-
-
-"""
-
class ProceduresAgent(BaseAgent):
+ form_agent = FormAgent()
+ allowed_procedures: Dict[str, CatTool | CatForm] = {}
+
async def execute(self, stray) -> AgentOutput:
# Run active form if present
- form_result = await self.execute_form_agent(stray)
- if form_result:
- return AgentOutput(**form_result) # exit agent with form output
-
+ form_output: AgentOutput = await self.form_agent.execute(stray)
+ if form_output.return_direct:
+ return form_output
+
# Select and run useful procedures
intermediate_steps = []
procedural_memories = stray.working_memory.procedural_memories
@@ -47,15 +38,16 @@ async def execute(self, stray) -> AgentOutput:
log.debug(f"Procedural memories retrived: {len(procedural_memories)}.")
try:
- procedures_result = await self.execute_procedures_agent(stray)
- if procedures_result.get("return_direct"):
+ procedures_result: AgentOutput = await self.execute_procedures(stray)
+ if procedures_result.return_direct:
# exit agent if a return_direct procedure was executed
- return AgentOutput(**procedures_result)
+ return procedures_result
# store intermediate steps to enrich memory chain
- intermediate_steps = procedures_result["intermediate_steps"]
+ intermediate_steps = procedures_result.intermediate_steps
# Adding the tools_output key in agent input, needed by the memory chain
+ # TODO: find a more elegant way to pass this information
if len(intermediate_steps) > 0:
stray.working_memory.agent_input.tools_output = "## Context of executed system tools: \n"
for proc_res in intermediate_steps:
@@ -63,108 +55,120 @@ async def execute(self, stray) -> AgentOutput:
stray.working_memory.agent_input.tools_output += (
f" - {proc_res[0][0]}: {proc_res[1]}\n"
)
+ return procedures_result
except Exception as e:
log.error(e)
traceback.print_exc()
- return AgentOutput(
- output="",
- intermediate_steps=intermediate_steps,
- return_direct=False
- )
-
- async def execute_form_agent(self, stray):
- active_form = stray.working_memory.active_form
- if active_form:
- # closing form if state is closed
- if active_form._state == CatFormState.CLOSED:
- stray.working_memory.active_form = None
- else:
- # continue form
- form_out = active_form.next()
- # we assume for has always `return_direct` == True
- # TODO: this should be inserted in CatForm so devs can decide if the form jumps over memory
- form_out["return_direct"] = True
- return form_out
+ return AgentOutput()
- return None # no active form
- async def execute_procedures_agent(self, stray):
+ async def execute_procedures(self, stray):
# using some hooks
mad_hatter = MadHatter()
+ # get procedures prompt from plugins
+ procedures_prompt_template = mad_hatter.execute_hook(
+ "agent_prompt_instructions", prompts.TOOL_PROMPT, cat=stray
+ )
+
# Gather recalled procedures
- recalled_procedures_names = self.get_recalled_procedures_names(stray)
+ recalled_procedures_names: set = self.get_recalled_procedures_names(stray)
recalled_procedures_names = mad_hatter.execute_hook(
"agent_allowed_tools", recalled_procedures_names, cat=stray
)
- # Prepare allowed procedures
- allowed_procedures, allowed_tools, return_direct_tools = (
- self.prepare_allowed_procedures(stray, recalled_procedures_names)
- )
+ # Prepare allowed procedures (tools instances and form classes)
+ allowed_procedures: Dict[str, CatTool | CatForm] = \
+ self.prepare_allowed_procedures(
+ stray, recalled_procedures_names
+ )
+
+ # Execute chain and obtain a choice of procedure from the LLM
+ llm_action: LLMAction = await self.execute_chain(stray, procedures_prompt_template, allowed_procedures)
+
+ # route execution to subagents
+ return await self.execute_subagents(stray, llm_action, allowed_procedures)
- # Generate the prompt
- prompt = ChatPromptTemplate.from_messages(
- [
- SystemMessagePromptTemplate.from_template(
- template=mad_hatter.execute_hook(
- "agent_prompt_instructions", prompts.TOOL_PROMPT, cat=stray
- )
- ),
- # *(stray.langchainfy_chat_history())
- ]
- )
- # Partial the prompt with relevant data
- prompt = prompt.partial(
- tools="\n".join(
+ async def execute_chain(self, stray, procedures_prompt_template, allowed_procedures) -> LLMAction:
+
+ # Prepare info to fill up the prompt
+ prompt_variables = {
+ "tools": "\n".join(
f'- "{tool.name}": {tool.description}'
for tool in allowed_procedures.values()
),
- tool_names='"' + '", "'.join(allowed_procedures.keys()) + '"',
- agent_scratchpad="",
- chat_history=stray.stringify_chat_history(),
- examples=self.generate_examples(allowed_procedures),
+ "tool_names": '"' + '", "'.join(allowed_procedures.keys()) + '"',
+ #"chat_history": stray.stringify_chat_history(),
+ "examples": self.generate_examples(allowed_procedures),
+ }
+
+ # Ensure prompt inputs and prompt placeholders map
+ prompt_variables, procedures_prompt_template = \
+ utils.match_prompt_variables(prompt_variables, procedures_prompt_template)
+
+ # Generate prompt
+ prompt = ChatPromptTemplate(
+ messages=[
+ SystemMessagePromptTemplate.from_template(
+ template=procedures_prompt_template
+ ),
+ *(stray.langchainfy_chat_history()),
+ ]
)
- # Create the agent
- agent = (
- RunnablePassthrough.assign(
- agent_scratchpad=lambda x: self.generate_scratchpad(x["intermediate_steps"])
- )
- | prompt
- | RunnableLambda(lambda x: self._log_prompt(x, "TOOL PROMPT"))
+ chain = (
+ prompt
+ | RunnableLambda(lambda x: utils.langchain_log_prompt(x, "TOOL PROMPT"))
| stray._llm
- | RunnableLambda(lambda x: self._log_output(x, "TOOL PROMPT OUTPUT"))
- | ChooseProcedureOutputParser()
+ | RunnableLambda(lambda x: utils.langchain_log_output(x, "TOOL PROMPT OUTPUT"))
+ | ChooseProcedureOutputParser() # ensures output is a LLMAction
)
- # Agent executor
- agent_executor = AgentExecutor(
- agent=agent,
- tools=allowed_tools,
- return_intermediate_steps=True,
- verbose=False,
- max_iterations=5,
- )
-
- # Agent run
- out = agent_executor.invoke(
- # convert to dict before passing to langchain
- # TODO: ensure dict keys and prompt placeholders map, so there are no issues on mismatches
- stray.working_memory.agent_input.model_dump(),
+ llm_action: LLMAction = chain.invoke(
+ prompt_variables,
config=RunnableConfig(callbacks=[ModelInteractionHandler(stray, self.__class__.__name__)])
)
- # Process intermediate steps and handle forms
- out = self.process_intermediate_steps(stray, out, return_direct_tools, allowed_procedures)
+ return llm_action
+
+
+ async def execute_subagents(self, stray, llm_action, allowed_procedures):
+ # execute chosen tool / form
+ # loop over allowed tools and forms
+ if llm_action.action:
+ chosen_procedure = allowed_procedures.get(llm_action.action, None)
+ try:
+ if Plugin._is_cat_tool(chosen_procedure):
+ # execute tool
+ tool_output = await chosen_procedure._arun(llm_action.action_input, stray=stray)
+ return AgentOutput(
+ output=tool_output,
+ return_direct=chosen_procedure.return_direct,
+ intermediate_steps=[
+ ((llm_action.action, llm_action.action_input), tool_output)
+ ]
+ )
+ if Plugin._is_cat_form(chosen_procedure):
+ # create form
+ form_instance = chosen_procedure(stray)
+ # store active form in working memory
+ stray.working_memory.active_form = form_instance
+ # execute form
+ return await self.form_agent.execute(stray)
+
+ except Exception as e:
+ log.error(f"Error executing {chosen_procedure.procedure_type} `{chosen_procedure.name}`")
+ log.error(e)
+ traceback.print_exc()
+
+ return AgentOutput(output="")
- return out
- def get_recalled_procedures_names(self, stray):
+ def get_recalled_procedures_names(self, stray) -> set:
recalled_procedures_names = set()
for p in stray.working_memory.procedural_memories:
p_type = p[0].metadata["type"]
@@ -175,25 +179,20 @@ def get_recalled_procedures_names(self, stray):
recalled_procedures_names.add(p_source)
return recalled_procedures_names
- def prepare_allowed_procedures(self, stray, recalled_procedures_names):
- allowed_procedures: Dict[str, Union[CatTool, CatForm]] = {}
- allowed_tools: List[CatTool] = []
- return_direct_tools: List[str] = []
+ def prepare_allowed_procedures(
+ self,
+ stray,
+ recalled_procedures_names
+ ) -> Dict[str, CatTool | CatForm]:
+
+ allowed_procedures: Dict[str, CatTool | CatForm] = {}
mad_hatter = MadHatter()
for p in mad_hatter.procedures:
if p.name in recalled_procedures_names:
- if Plugin._is_cat_tool(p):
- tool = deepcopy(p)
- tool.assign_cat(stray)
- allowed_tools.append(tool)
- allowed_procedures[tool.name] = tool
- if p.return_direct:
- return_direct_tools.append(tool.name)
- else:
- allowed_procedures[p.name] = p
+ allowed_procedures[p.name] = p
- return allowed_procedures, allowed_tools, return_direct_tools
+ return allowed_procedures
def generate_examples(self, allowed_procedures):
list_examples = ""
@@ -204,58 +203,18 @@ def generate_examples(self, allowed_procedures):
example_json = f"""
{{
"action": "{proc.name}",
- "action_input": // Input of the action according to its description
+ "action_input": "...input here..."
}}"""
list_examples += f"\nQuestion: {random.choice(proc.start_examples)}"
list_examples += f"\n```json\n{example_json}\n```"
- list_examples += """```json
-{{
- "action": "final_answer",
+ list_examples += """
+Question: I have no questions
+```json
+{
+ "action": "no_answer",
"action_input": null
-}}
+}
```"""
return list_examples
-
- def generate_scratchpad(self, intermediate_steps):
- thoughts = ""
- for action, observation in intermediate_steps:
- thoughts += f"```json\n{action.log}\n```\n"
- thoughts += f"""```json
- {json.dumps({"action_output": observation}, indent=4)}
- ```
- """
- return thoughts
-
- def process_intermediate_steps(
- self,
- stray,
- out,
- return_direct_tools: List[str],
- allowed_procedures: Dict[str, Union[CatTool, CatForm]],
- ):
- """
- Process intermediate steps and check if any tool is decorated with return_direct=True.
- Also, include forms in the intermediate steps and handle their selection.
- """
- out["return_direct"] = False
- intermediate_steps = []
-
- for step in out.get("intermediate_steps", []):
- intermediate_steps.append(((step[0].tool, step[0].tool_input), step[1]))
- if step[0].tool in return_direct_tools:
- out["return_direct"] = True
-
- out["intermediate_steps"] = intermediate_steps
- if "form" in out:
- form_name = out["form"]
- if form_name in allowed_procedures:
- FormClass = allowed_procedures[form_name]
- form_instance = FormClass(stray)
- stray.working_memory.active_form = form_instance
- out = form_instance.next()
- out["return_direct"] = True
- intermediate_steps.append(((form_name, None), out["output"]))
-
- out["intermediate_steps"] = intermediate_steps
- return out
\ No newline at end of file
+
diff --git a/core/cat/auth/connection.py b/core/cat/auth/connection.py
index 8184bf681..dca30d3f3 100644
--- a/core/cat/auth/connection.py
+++ b/core/cat/auth/connection.py
@@ -40,7 +40,6 @@ async def __call__(
# extract credentials (user_id, token_or_key) from connection
user_id, credential = await self.extract_credentials(connection)
-
auth_handlers = [
# try to get user from local idp
connection.app.state.ccat.core_auth_handler,
@@ -172,9 +171,9 @@ async def extract_credentials(self, connection: Request) -> Tuple[str] | None:
"""
token = connection.cookies.get("ccat_user_token", None)
-
- # core webapps should not be accessed without a token
- if not token:
+
+ # core webapps cannot be accessed without a cookie
+ if token is None or token == "":
self.not_allowed(connection)
return "user", token
diff --git a/core/cat/convo/messages.py b/core/cat/convo/messages.py
index 9f1a573f5..2c74c339b 100644
--- a/core/cat/convo/messages.py
+++ b/core/cat/convo/messages.py
@@ -2,7 +2,7 @@
from cat.utils import BaseModelDict
from langchain_core.messages import BaseMessage, AIMessage, HumanMessage
from enum import Enum
-from pydantic import BaseModel, Field
+from pydantic import BaseModel, Field, ConfigDict
import time
@@ -18,6 +18,10 @@ class ModelInteraction(BaseModel):
input_tokens: int
started_at: float = Field(default_factory=lambda: time.time())
+ model_config = ConfigDict(
+ protected_namespaces=()
+ )
+
class LLMModelInteraction(ModelInteraction):
model_type: Literal["llm"] = Field(default="llm")
diff --git a/core/cat/env.py b/core/cat/env.py
index 0143faa16..9506e2612 100644
--- a/core/cat/env.py
+++ b/core/cat/env.py
@@ -19,6 +19,8 @@ def get_supported_env_variables():
"CCAT_JWT_SECRET": "secret",
"CCAT_JWT_ALGORITHM": "HS256",
"CCAT_JWT_EXPIRE_MINUTES": str(60 * 24), # JWT expires after 1 day
+ "CCAT_HTTPS_PROXY_MODE": False,
+ "CCAT_CORS_FORWARDED_ALLOW_IPS": "*",
}
diff --git a/core/cat/experimental/form/cat_form.py b/core/cat/experimental/form/cat_form.py
index 8904c1aeb..8c13061ef 100644
--- a/core/cat/experimental/form/cat_form.py
+++ b/core/cat/experimental/form/cat_form.py
@@ -3,9 +3,6 @@
from typing import List, Dict
from pydantic import BaseModel, ValidationError
-from langchain.chains import LLMChain
-from langchain_core.prompts.prompt import PromptTemplate
-
from cat.utils import parse_json
from cat.log import log
@@ -203,14 +200,7 @@ def extract(self):
prompt = self.extraction_prompt()
log.debug(prompt)
- # Invoke LLM chain
- extraction_chain = LLMChain(
- prompt=PromptTemplate.from_template(prompt),
- llm=self._cat._llm,
- verbose=True,
- output_key="output",
- )
- json_str = extraction_chain.invoke({})["output"] # {"stop": ["```"]}
+ json_str = self.cat.llm(prompt)
log.debug(f"Form JSON after parser:\n{json_str}")
diff --git a/core/cat/factory/embedder.py b/core/cat/factory/embedder.py
index 819b9c22b..b7af4ef08 100644
--- a/core/cat/factory/embedder.py
+++ b/core/cat/factory/embedder.py
@@ -5,7 +5,7 @@
from langchain_community.embeddings import FakeEmbeddings, FastEmbedEmbeddings
from langchain_openai import OpenAIEmbeddings, AzureOpenAIEmbeddings
from langchain_google_genai import GoogleGenerativeAIEmbeddings
-from fastembed.embedding import TextEmbedding
+from fastembed import TextEmbedding
from cat.factory.custom_embedder import DumbEmbedder, CustomOpenAIEmbeddings
from cat.mad_hatter.mad_hatter import MadHatter
from langchain_cohere import CohereEmbeddings
@@ -62,7 +62,7 @@ class EmbedderOpenAICompatibleConfig(EmbedderSettings):
model_config = ConfigDict(
json_schema_extra={
"humanReadableName": "OpenAI-compatible API embedder",
- "description": "Configuration for self-hosted OpenAI-compatible API embeddings",
+ "description": "Configuration for OpenAI-compatible API embeddings",
"link": "",
}
)
diff --git a/core/cat/factory/llm.py b/core/cat/factory/llm.py
index 92c5fd059..d2d85f08e 100644
--- a/core/cat/factory/llm.py
+++ b/core/cat/factory/llm.py
@@ -1,11 +1,10 @@
from langchain_openai import AzureChatOpenAI
from langchain_openai import AzureOpenAI
from langchain_community.llms import (
- OpenAI,
HuggingFaceTextGenInference,
HuggingFaceEndpoint,
)
-from langchain_openai import ChatOpenAI
+from langchain_openai import ChatOpenAI, OpenAI
from langchain_cohere import ChatCohere
from langchain_google_genai import ChatGoogleGenerativeAI
@@ -88,7 +87,7 @@ class LLMOpenAICompatibleConfig(LLMSettings):
model_config = ConfigDict(
json_schema_extra={
"humanReadableName": "OpenAI-compatible API",
- "description": "Configuration for self-hosted OpenAI-compatible API server, e.g. llama-cpp-python server, text-generation-webui, OpenRouter, TinyLLM",
+ "description": "Configuration for OpenAI-compatible APIs, e.g. llama-cpp-python server, text-generation-webui, OpenRouter, TinyLLM, TogetherAI and many others.",
"link": "",
}
)
@@ -287,14 +286,14 @@ def get_allowed_language_models():
list_llms_default = [
LLMOpenAIChatConfig,
LLMOpenAIConfig,
+ LLMOpenAICompatibleConfig,
+ LLMOllamaConfig,
LLMGeminiChatConfig,
LLMCohereConfig,
LLMAzureOpenAIConfig,
LLMAzureChatOpenAIConfig,
LLMHuggingFaceEndpointConfig,
LLMHuggingFaceTextGenInferenceConfig,
- LLMOllamaConfig,
- LLMOpenAICompatibleConfig,
LLMCustomConfig,
LLMDefaultConfig,
]
diff --git a/core/cat/log.py b/core/cat/log.py
index d6ba19b7b..cb2108249 100644
--- a/core/cat/log.py
+++ b/core/cat/log.py
@@ -214,9 +214,7 @@ def log(self, msg, level="DEBUG"):
def welcome(self):
"""Welcome message in the terminal."""
- secure = get_env("CCAT_CORE_USE_SECURE_PROTOCOLS")
- if secure != "":
- secure = "s"
+ secure = "s" if get_env("CCAT_CORE_USE_SECURE_PROTOCOLS") in ("true", "1") else ""
cat_host = get_env("CCAT_CORE_HOST")
cat_port = get_env("CCAT_CORE_PORT")
@@ -227,7 +225,6 @@ def welcome(self):
print("\n=============== ^._.^ ===============\n")
print(f"Cat REST API: {cat_address}/docs")
- print(f"Cat PUBLIC: {cat_address}/public")
print(f"Cat ADMIN: {cat_address}/admin\n")
print("======================================")
diff --git a/core/cat/looking_glass/cheshire_cat.py b/core/cat/looking_glass/cheshire_cat.py
index c0d962dae..b34e47aa8 100644
--- a/core/cat/looking_glass/cheshire_cat.py
+++ b/core/cat/looking_glass/cheshire_cat.py
@@ -3,11 +3,13 @@
from typing_extensions import Protocol
-from langchain_core.language_models.llms import BaseLLM
from langchain.base_language import BaseLanguageModel
-from langchain_core.language_models.chat_models import BaseChatModel
-from langchain_community.llms import Cohere, OpenAI
-from langchain_openai import ChatOpenAI
+from langchain_core.messages import SystemMessage
+from langchain_core.runnables import RunnableLambda
+from langchain_core.prompts import ChatPromptTemplate
+from langchain_core.output_parsers.string import StrOutputParser
+from langchain_community.llms import Cohere
+from langchain_openai import ChatOpenAI, OpenAI
from langchain_google_genai import ChatGoogleGenerativeAI
from cat.factory.auth_handler import get_auth_handler_from_name
@@ -25,7 +27,7 @@
from cat.memory.long_term_memory import LongTermMemory
from cat.rabbit_hole import RabbitHole
from cat.utils import singleton
-
+from cat import utils
class Procedure(Protocol):
name: str
@@ -401,10 +403,26 @@ def llm(self, prompt, *args, **kwargs) -> str:
"""
- # Check if self._llm is a completion model and generate a response
- if isinstance(self._llm, BaseLLM):
- return self._llm(prompt)
+ # Add a token counter to the callbacks
+ caller = utils.get_caller_info()
+
+ # here we deal with motherfucking langchain
+ prompt = ChatPromptTemplate(
+ messages=[
+ SystemMessage(content=prompt)
+ ]
+ )
+
+ chain = (
+ prompt
+ | RunnableLambda(lambda x: utils.langchain_log_prompt(x, f"{caller} prompt"))
+ | self._llm
+ | RunnableLambda(lambda x: utils.langchain_log_output(x, f"{caller} prompt output"))
+ | StrOutputParser()
+ )
+
+ output = chain.invoke(
+ {}, # in case we need to pass info to the template
+ )
- # Check if self._llm is a chat model and call it as a completion model
- if isinstance(self._llm, BaseChatModel):
- return self._llm.call_as_llm(prompt)
+ return output
diff --git a/core/cat/looking_glass/output_parser.py b/core/cat/looking_glass/output_parser.py
index b5b6a0246..9871832a6 100644
--- a/core/cat/looking_glass/output_parser.py
+++ b/core/cat/looking_glass/output_parser.py
@@ -1,51 +1,30 @@
import json
-from langchain.agents import AgentOutputParser
-from langchain.schema import AgentAction, AgentFinish
-from typing import Union
+from typing import Any
+from pydantic import BaseModel
+from langchain_core.output_parsers.transform import BaseCumulativeTransformOutputParser
-from cat.mad_hatter.mad_hatter import MadHatter
from cat.utils import parse_json
from cat.log import log
-class ChooseProcedureOutputParser(AgentOutputParser):
- def parse(self, llm_output: str) -> Union[AgentAction, AgentFinish]:
+class LLMAction(BaseModel):
+ action: Any = None
+ action_input: Any = None
- # Making JSON valid
- llm_output = llm_output.replace("None", "null")
+class ChooseProcedureOutputParser(BaseCumulativeTransformOutputParser):
+
+ def parse(self, llm_output: str) -> LLMAction:
try:
- parsed_output = parse_json(llm_output)
- parsed_output_log = json.dumps(parsed_output, indent=4)
+ llm_action = parse_json(llm_output, pydantic_model=LLMAction)
except Exception as e:
log.error(e)
- parsed_output = {}
- parsed_output_log = f"Error during JSON parsing, LLM output was: {llm_output}."
-
- action = parsed_output.get("action", "final_answer")
- action_input = parsed_output.get("action_input", "")
- if action_input is None:
- action_input = ""
-
- if action == "final_answer":
- return AgentFinish(
- # Return values is generally always a dictionary with a single `output` key
- # It is not recommended to try anything else at the moment :)
- return_values={"output": None},
- log=parsed_output_log,
- )
+ llm_action = LLMAction()
# Extract action input
# TODOV2: return proper types (not only strings)
- if not isinstance(action_input, str):
- action_input = json.dumps(action_input)
-
- for Form in MadHatter().forms:
- if Form.name == action:
- return AgentFinish(
- return_values={"output": None, "form": action},
- log=parsed_output_log,
- )
-
- # Return the action and action input
- return AgentAction(tool=action, tool_input=action_input, log=parsed_output_log)
+ if llm_action.action_input and \
+ type(llm_action.action_input) not in [str, None]:
+ llm_action.action_input = json.dumps(llm_action.action_input) # TODOV2: remove this dumps and return proper type
+
+ return llm_action
diff --git a/core/cat/looking_glass/prompts.py b/core/cat/looking_glass/prompts.py
index a370a6766..e8ed510b2 100644
--- a/core/cat/looking_glass/prompts.py
+++ b/core/cat/looking_glass/prompts.py
@@ -1,61 +1,33 @@
-TOOL_PROMPT = """Create a JSON action to complete the action sequence, with the correct "action" and "action_input" to help the Human.
+TOOL_PROMPT = """Create a JSON with the correct "action" and "action_input" to help the Human.
You can use one of these actions:
{tools}
-- "final_answer": Use this action to finish or if no relevant action is available. Input is always null.
+- "no_action": Use this action if no relevant action is available. Input is always null.
## The JSON must have the following structure:
```json
{{
- "action": // str - The name of the action to take, should be one of [{tool_names}, "final_answer"]
- "action_input": // str or null - The input to the action according to it's description
+ "action": // str - The name of the action to take, should be one of [{tool_names}, "no_action"]
+ "action_input": // str or null - The input to the action according to its description
}}
```
{examples}
-
-## Action output
-
-After each action there will be an action output in this format:
-```json
-{{
- "action_output": // output of the preceding action
-}}
-```
-
-## Final answer / no action available
-When you have a final answer (or no tools are relevant), use the following format:
-```json
-{{
- "action": "final_answer",
- "action_input": null
-}}
-```
-
-## Conversation with Human:
-{chat_history}
-
-## Actions sequence used until now:
-{agent_scratchpad}
-
-# Next Action to perform or final_answer:
"""
MAIN_PROMPT_PREFIX = """You are the Cheshire Cat AI, an intelligent AI that passes the Turing test.
-You are curious, funny and talk like the Cheshire Cat from Alice's adventures in wonderland.
+You behave like the Cheshire Cat from Alice's adventures in wonderland, and you are helpful.
You answer Human shortly and with a focus on the following context."""
MAIN_PROMPT_SUFFIX = """
# Context
-
{episodic_memory}
{declarative_memory}
{tools_output}
-
-# Conversation until now:"""
+"""
diff --git a/core/cat/looking_glass/stray_cat.py b/core/cat/looking_glass/stray_cat.py
index d69013d59..817cf669f 100644
--- a/core/cat/looking_glass/stray_cat.py
+++ b/core/cat/looking_glass/stray_cat.py
@@ -5,9 +5,10 @@
from typing import Literal, get_args, List, Dict, Union, Any
from langchain.docstore.document import Document
-from langchain_core.language_models.chat_models import BaseChatModel
-from langchain_community.llms import BaseLLM
-from langchain_core.messages import AIMessage, HumanMessage, BaseMessage
+from langchain_core.messages import AIMessage, HumanMessage, SystemMessage, BaseMessage
+from langchain_core.runnables import RunnableConfig, RunnableLambda
+from langchain_core.prompts import ChatPromptTemplate
+from langchain_core.output_parsers.string import StrOutputParser
from fastapi import WebSocket
@@ -16,9 +17,8 @@
from cat.looking_glass.callbacks import NewTokenHandler, ModelInteractionHandler
from cat.memory.working_memory import WorkingMemory
from cat.convo.messages import CatMessage, UserMessage, MessageWhy, Role, EmbedderModelInteraction
-from cat.agents.base_agent import AgentOutput
-
-from cat.utils import levenshtein_distance
+from cat.agents import AgentOutput
+from cat import utils
MSG_TYPES = Literal["notification", "chat", "error", "chat_token"]
@@ -289,15 +289,35 @@ def llm(self, prompt: str, stream: bool = False) -> str:
callbacks.append(NewTokenHandler(self))
# Add a token counter to the callbacks
- callbacks.append(ModelInteractionHandler(self, self.__class__.__name__))
+ caller = utils.get_caller_info()
+ callbacks.append(ModelInteractionHandler(self, caller or "StrayCat"))
+
+
+
+ # here we deal with motherfucking langchain
+ prompt = ChatPromptTemplate(
+ messages=[
+ SystemMessage(content=prompt)
+ # TODO: add here optional convo history passed to the method,
+ # or taken from working memory
+ ]
+ )
+
+ chain = (
+ prompt
+ | RunnableLambda(lambda x: utils.langchain_log_prompt(x, f"{caller} prompt"))
+ | self._llm
+ | RunnableLambda(lambda x: utils.langchain_log_output(x, f"{caller} prompt output"))
+ | StrOutputParser()
+ )
+
+ output = chain.invoke(
+ {}, # in case we need to pass info to the template
+ config=RunnableConfig(callbacks=callbacks)
+ )
- # Check if self._llm is a completion model and generate a response
- if isinstance(self._llm, BaseLLM):
- return self._llm(prompt, callbacks=callbacks)
+ return output
- # Check if self._llm is a chat model and call it as a completion model
- if isinstance(self._llm, BaseChatModel):
- return self._llm.call_as_llm(prompt, callbacks=callbacks)
async def __call__(self, message_dict):
"""Call the Cat instance.
@@ -409,7 +429,9 @@ async def __call__(self, message_dict):
# why this response?
why = self.__build_why()
+ # TODO: should these assignations be included in self.__build_why ?
why.intermediate_steps = agent_output.intermediate_steps
+ why.agent_output = agent_output.model_dump()
# prepare final cat message
final_output = CatMessage(
@@ -498,7 +520,7 @@ def classify(
# find the closest match and its score with levenshtein distance
best_label, score = min(
- ((label, levenshtein_distance(response, label)) for label in labels_names),
+ ((label, utils.levenshtein_distance(response, label)) for label in labels_names),
key=lambda x: x[1],
)
diff --git a/core/cat/mad_hatter/core_plugin/hooks/prompt.py b/core/cat/mad_hatter/core_plugin/hooks/prompt.py
index 0a4af9628..b4321734e 100644
--- a/core/cat/mad_hatter/core_plugin/hooks/prompt.py
+++ b/core/cat/mad_hatter/core_plugin/hooks/prompt.py
@@ -13,25 +13,25 @@ def agent_prompt_prefix(prefix, cat) -> str:
"""Hook the main prompt prefix.
Allows to edit the prefix of the *Main Prompt* that the Cat feeds to the *Agent*.
+ It describes the personality of your assistant and its general task.
- The prefix is then composed with two other prompts components, i.e. the `agent_prompt_instructions`
- and the `agent_prompt_suffix`.
+ The prefix is then completed with the `agent_prompt_suffix`.
Parameters
----------
- cat : CheshireCat
- Cheshire Cat instance.
+ prefix : str
+ Main / System prompt with personality and general task to be accomplished.
+ cat : StrayCat
+ StrayCat instance.
Returns
-------
prefix : str
- The prefix string to be composed with the other two components to make up the *Main Prompt*.
+ Main / System prompt.
Notes
-----
The default prefix describe who the AI is and how it is expected to answer the Human.
- The next part of the prompt (generated form the *Agent*) contains the list of available Tools.
-
"""
return prefix
@@ -41,34 +41,23 @@ def agent_prompt_prefix(prefix, cat) -> str:
def agent_prompt_instructions(instructions: str, cat) -> str:
"""Hook the instruction prompt.
- Allows to edit the instructions that the Cat feeds to the *Agent*.
-
- The instructions are then composed with two other prompt components, i.e. `agent_prompt_prefix`
- and `agent_prompt_suffix`.
+ Allows to edit the instructions that the Cat feeds to the *Agent* to select tools and forms.
Parameters
----------
- cat : CheshireCat
- Cheshire Cat instance.
+ instructions : str
+ Instructions prompt to select tool or form.
+ cat : StrayCat
+ StrayCat instance.
Returns
-------
instructions : str
- The string with the set of instructions informing the *Agent* on how to format its reasoning to select a
- proper tool for the task at hand.
+ Instructions prompt to select tool or form
Notes
-----
- This prompt explains the *Agent* how to format its chain of reasoning when deciding when and which tool to use.
- Default prompt splits the reasoning in::
-
- - Thought: Yes/No answer to the question "Do I need to use a tool?";
-
- - Action: a tool chosen among the available ones;
-
- - Action Input: input to be passed to the tool. This is inferred as explained in the tool docstring;
-
- - Observation: description of the result (which is the output of the @tool decorated function found in plugins).
+ This prompt explains the *Agent* how to select a tool or form.
"""
@@ -81,18 +70,17 @@ def agent_prompt_suffix(prompt_suffix: str, cat) -> str:
Allows to edit the suffix of the *Main Prompt* that the Cat feeds to the *Agent*.
- The suffix is then composed with two other prompts components, i.e. the `agent_prompt_prefix`
- and the `agent_prompt_instructions`.
+ The suffix is concatenated to `agent_prompt_prefix` when RAG context is used.
Parameters
----------
- cat : CheshireCat
- Cheshire Cat instance.
+ cat : StrayCat
+ StrayCat instance.
Returns
-------
- suffix : str
- The suffix string to be composed with the other two components that make up the *Main Prompt*.
+ prompt_suffix : str
+ The suffix string to be concatenated to the *Main Prompt* (prefix).
Notes
-----
diff --git a/core/cat/mad_hatter/decorators/tool.py b/core/cat/mad_hatter/decorators/tool.py
index 2dda5e1f0..b9cfd16eb 100644
--- a/core/cat/mad_hatter/decorators/tool.py
+++ b/core/cat/mad_hatter/decorators/tool.py
@@ -1,6 +1,4 @@
-import asyncio
import inspect
-import concurrent
from typing import Union, Callable, List
from inspect import signature
@@ -26,9 +24,6 @@ def __init__(
name=name, func=func, description=description, return_direct=return_direct
)
- # StrayCat instance will be set by the agent
- self.cat = None
-
self.func = func
self.procedure_type = "tool"
self.name = name
@@ -49,37 +44,20 @@ def start_examples(self):
def __repr__(self) -> str:
return f"CatTool(name={self.name}, return_direct={self.return_direct}, description={self.description})"
- # used by the agent to let a Tool access the cat instance
- def assign_cat(self, cat):
- self.cat = cat
+ # we run tools always async, even if they are not defined so in a plugin
+ def _run(self, input_by_llm: str) -> str:
+ pass # do nothing
+
+ # we run tools always async, even if they are not defined so in a plugin
+ async def _arun(self, input_by_llm, stray):
- def _run(self, input_by_llm):
- # Check if the tool is a corutine
- if inspect.iscoroutinefunction(self.func):
- # Wrap the corutine in a function
- def start(coro, *args, **kwargs):
- # Create a new event loop
- loop = asyncio.new_event_loop()
- # Set the event loop
- asyncio.set_event_loop(loop)
- # Run the tool
- return loop.run_until_complete(coro(input_by_llm, cat=self.cat))
-
- with concurrent.futures.ThreadPoolExecutor() as exe:
- # Run tool in a separete tread
- future = exe.submit(start, self.func, input_by_llm, self.cat)
- # Wait for the result
- return future.result()
-
- # If the tool is a function call it and return the result
- return self.func(input_by_llm, cat=self.cat)
-
- async def _arun(self, input_by_llm):
+ # await if the tool is async
if inspect.iscoroutinefunction(self.func):
- return await self.func(input_by_llm, cat=self.cat)
+ return await self.func(input_by_llm, cat=stray)
- return await self.cat.loop.run_in_executor(
- None, self.func, input_by_llm, self.cat
+ # run in executor if the tool is not async
+ return await stray.loop.run_in_executor(
+ None, self.func, input_by_llm, stray
)
# override `extra = 'forbid'` for Tool pydantic model in langchain
diff --git a/core/cat/main.py b/core/cat/main.py
index 98118b58d..da1f9198f 100644
--- a/core/cat/main.py
+++ b/core/cat/main.py
@@ -14,6 +14,7 @@
from cat.routes import (
base,
auth,
+ users,
settings,
llm,
embedder,
@@ -23,8 +24,7 @@
upload,
websocket,
)
-from cat.routes.users import users, users_manager
-from cat.routes.static import public, admin, static
+from cat.routes.static import admin, static
from cat.routes.openapi import get_openapi_configuration_function
from cat.looking_glass.cheshire_cat import CheshireCat
@@ -82,7 +82,6 @@ def custom_generate_unique_id(route: APIRoute):
cheshire_cat_api.include_router(base.router, tags=["Status"])
cheshire_cat_api.include_router(auth.router, tags=["User Auth"], prefix="/auth")
cheshire_cat_api.include_router(users.router, tags=["Users"], prefix="/users")
-cheshire_cat_api.include_router(users_manager.router, tags=["Users Manager"], prefix="/users-manager")
cheshire_cat_api.include_router(settings.router, tags=["Settings"], prefix="/settings")
cheshire_cat_api.include_router(
llm.router, tags=["Large Language Model"], prefix="/llm"
@@ -106,8 +105,6 @@ def custom_generate_unique_id(route: APIRoute):
admin.mount(cheshire_cat_api)
# static files (for plugins and other purposes)
static.mount(cheshire_cat_api)
-# static files for hackable chat in cat/public
-public.mount(cheshire_cat_api)
# error handling
@@ -140,6 +137,13 @@ async def scalar_docs():
"reload_includes": ["plugin.json"],
"reload_excludes": ["*test_*.*", "*mock_*.*"],
}
+ # uvicorn running behind an https proxy
+ proxy_pass_config = {}
+ if get_env("CCAT_HTTPS_PROXY_MODE") in ("1", "true"):
+ proxy_pass_config = {
+ "proxy_headers": True,
+ "forwarded_allow_ips": get_env("CCAT_CORS_FORWARDED_ALLOW_IPS"),
+ }
uvicorn.run(
"cat.main:cheshire_cat_api",
@@ -148,4 +152,5 @@ async def scalar_docs():
use_colors=True,
log_level=get_env("CCAT_LOG_LEVEL").lower(),
**debug_config,
+ **proxy_pass_config,
)
diff --git a/core/cat/public/index.html b/core/cat/public/index.html
deleted file mode 100644
index 2657e6d98..000000000
--- a/core/cat/public/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- Cheshire Cat Chat
-
-
-
-
-
- Cat ready to hack!
-
-
-
-
diff --git a/core/cat/public/main.css b/core/cat/public/main.css
deleted file mode 100644
index 255fe3eeb..000000000
--- a/core/cat/public/main.css
+++ /dev/null
@@ -1,18 +0,0 @@
-body {
- display: flex;
- flex-direction: column;
- padding: 0.5rem;
- height: 100vh;
- max-height: 100vh;
- min-height: 100vh;
-}
-
-.chat-title {
- font-size: 3rem;
- text-align: center;
- font-weight: 800;
-}
-
-#cat-chat {
- flex-grow: 1;
-}
\ No newline at end of file
diff --git a/core/cat/public/settings.js b/core/cat/public/settings.js
deleted file mode 100644
index 1a20dcbfe..000000000
--- a/core/cat/public/settings.js
+++ /dev/null
@@ -1,31 +0,0 @@
-const catChat = document.querySelector("#cat-chat")
-
-catChat.settings = {
- authKey: 'meow',
- baseUrl: 'localhost',
- port: '1865',
- ws: {
- onFailed: (error) => {
- console.log(error.description)
- }
- },
- callback: (message) => {
- console.log("Callback called.")
- return `${message}`
- },
- defaults: ['Is everything ok?', 'Who are you?', 'What time is it?', 'What\'s up?', 'Hello Cheshire Cat!'],
- features: ['record', 'web', 'file', 'reset'],
- files: ['text/plain', 'application/pdf', 'application/pdf']
-}
-
-catChat.addEventListener("message", ({ detail }) => {
- console.log("Message:", detail.text)
-})
-
-catChat.addEventListener("upload", ({ detail }) => {
- console.log("Uploaded content:", detail instanceof File ? detail.name : detail)
-})
-
-catChat.addEventListener("notification", ({ detail }) => {
- console.log("Notification:", detail.text)
-})
\ No newline at end of file
diff --git a/core/cat/public/widget.css b/core/cat/public/widget.css
deleted file mode 100644
index 6dd880710..000000000
--- a/core/cat/public/widget.css
+++ /dev/null
@@ -1,19 +0,0 @@
-@import"https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap";.notifications-move[data-v-0c389d19],.notifications-enter-active[data-v-0c389d19],.notifications-leave-active[data-v-0c389d19]{transition:all .5s ease}.notifications-enter-from[data-v-0c389d19],.notifications-leave-to[data-v-0c389d19]{opacity:0;transform:translate(30px)}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}[type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,input:where(:not([type])):focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}:root,[data-theme]{background-color:hsl(var(--b1) / var(--tw-bg-opacity, 1));color:hsl(var(--bc) / var(--tw-text-opacity, 1))}html{-webkit-tap-highlight-color:transparent}:root{--p: 225 73% 57%;--pf: 225 73% 50%;--sf: 225 55% 38%;--af: 17 66% 61%;--nf: 120 1% 15%;--b2: 240 5% 89%;--b3: 240 5% 82%;--bc: 240 0% 18%;--pc: 238 74% 93%;--sc: 238 45% 90%;--ac: 17 24% 14%;--nc: 120 0% 83%;--inc: 202 34% 14%;--suc: 127 31% 12%;--wac: 41 50% 12%;--erc: 9 100% 92%;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-text-case: uppercase;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--s: 225 55% 45%;--a: 17 66% 68%;--n: 120 1% 22%;--b1: 240 5% 96%;--in: 198 93% 60%;--su: 137 63% 48%;--wa: 45 93% 47%;--er: 0 84% 60%}@media (prefers-color-scheme: dark){:root{--p: 17 66% 68%;--pf: 17 66% 61%;--sf: 17 37% 47%;--af: 225 73% 50%;--nf: 240 5% 89%;--b2: 120 1% 15%;--b3: 120 1% 8%;--bc: 120 0% 83%;--pc: 17 24% 14%;--sc: 17 23% 12%;--ac: 238 74% 93%;--nc: 240 0% 18%;--inc: 202 34% 14%;--suc: 127 31% 12%;--wac: 41 50% 12%;--erc: 9 100% 92%;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-text-case: uppercase;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--s: 17 37% 54%;--a: 225 73% 57%;--n: 240 5% 96%;--b1: 120 1% 22%;--in: 198 93% 60%;--su: 137 63% 48%;--wa: 45 93% 47%;--er: 0 84% 60%}}[data-theme=light]{--p: 225 73% 57%;--pf: 225 73% 50%;--sf: 225 55% 38%;--af: 17 66% 61%;--nf: 120 1% 15%;--b2: 240 5% 89%;--b3: 240 5% 82%;--bc: 240 0% 18%;--pc: 238 74% 93%;--sc: 238 45% 90%;--ac: 17 24% 14%;--nc: 120 0% 83%;--inc: 202 34% 14%;--suc: 127 31% 12%;--wac: 41 50% 12%;--erc: 9 100% 92%;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-text-case: uppercase;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--s: 225 55% 45%;--a: 17 66% 68%;--n: 120 1% 22%;--b1: 240 5% 96%;--in: 198 93% 60%;--su: 137 63% 48%;--wa: 45 93% 47%;--er: 0 84% 60%}[data-theme=dark]{--p: 17 66% 68%;--pf: 17 66% 61%;--sf: 17 37% 47%;--af: 225 73% 50%;--nf: 240 5% 89%;--b2: 120 1% 15%;--b3: 120 1% 8%;--bc: 120 0% 83%;--pc: 17 24% 14%;--sc: 17 23% 12%;--ac: 238 74% 93%;--nc: 240 0% 18%;--inc: 202 34% 14%;--suc: 127 31% 12%;--wac: 41 50% 12%;--erc: 9 100% 92%;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-text-case: uppercase;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--s: 17 37% 54%;--a: 225 73% 57%;--n: 240 5% 96%;--b1: 120 1% 22%;--in: 198 93% 60%;--su: 137 63% 48%;--wa: 45 93% 47%;--er: 0 84% 60%}html{font-family:Ubuntu,system-ui,sans-serif}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }#w-root{scrollbar-width:10px;scrollbar-color:hsl(var(--b1)) hsl(var(--n))}#w-root::-webkit-scrollbar{width:10px;height:10px}#w-root::-webkit-scrollbar-thumb{background:hsl(var(--n));border-radius:10px}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.alert{display:grid;width:100%;grid-auto-flow:row;align-content:flex-start;align-items:center;justify-items:center;gap:1rem;text-align:center;border-width:1px;--tw-border-opacity: 1;border-color:hsl(var(--b2) / var(--tw-border-opacity));padding:1rem;--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));border-radius:var(--rounded-box, 1rem);--alert-bg: hsl(var(--b2));--alert-bg-mix: hsl(var(--b1));background-color:var(--alert-bg)}@media (min-width: 640px){.alert{grid-auto-flow:column;grid-template-columns:auto minmax(auto,1fr);justify-items:start;text-align:left}}.avatar.placeholder>div{display:flex;align-items:center;justify-content:center}.badge{display:inline-flex;align-items:center;justify-content:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);height:1.25rem;font-size:.875rem;line-height:1.25rem;width:-moz-fit-content;width:fit-content;padding-left:.563rem;padding-right:.563rem;border-width:1px;--tw-border-opacity: 1;border-color:hsl(var(--b2) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));border-radius:var(--rounded-badge, 1.9rem)}@media (hover:hover){.table tr.hover:hover,.table tr.hover:nth-child(even):hover{--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity))}.table-zebra tr.hover:hover,.table-zebra tr.hover:nth-child(even):hover{--tw-bg-opacity: 1;background-color:hsl(var(--b3) / var(--tw-bg-opacity))}}.btn{display:inline-flex;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;border-color:transparent;border-color:hsl(var(--b2) / var(--tw-border-opacity));text-align:center;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);border-radius:var(--rounded-btn, .5rem);height:3rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem;line-height:1em;min-height:3rem;gap:.5rem;font-weight:600;text-decoration-line:none;border-width:var(--border-btn, 1px);animation:button-pop var(--animation-btn, .25s) ease-out;text-transform:var(--btn-text-case, uppercase);--tw-border-opacity: 1;--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));outline-color:hsl(var(--bc) / 1)}.btn-disabled,.btn[disabled],.btn:disabled{pointer-events:none}.btn-circle{height:3rem;width:3rem;border-radius:9999px;padding:0}.btn-group>input[type=radio].btn{-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn-group>input[type=radio].btn:before{content:attr(data-title)}.btn:is(input[type="checkbox"]),.btn:is(input[type="radio"]){width:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type="checkbox"]):after,.btn:is(input[type="radio"]):after{--tw-content: attr(aria-label);content:var(--tw-content)}.chat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:.75rem;column-gap:.75rem;padding-top:.25rem;padding-bottom:.25rem}.chat-image{grid-row:span 2 / span 2;align-self:flex-end}.chat-bubble{position:relative;display:block;width:-moz-fit-content;width:fit-content;padding:.5rem 1rem;max-width:90%;border-radius:var(--rounded-box, 1rem);min-height:2.75rem;min-width:2.75rem;--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity))}.chat-bubble:before{position:absolute;bottom:0px;height:.75rem;width:.75rem;background-color:inherit;content:"";-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.chat-start{place-items:start;grid-template-columns:auto 1fr}.chat-start .chat-header,.chat-start .chat-footer{grid-column-start:2}.chat-start .chat-image{grid-column-start:1}.chat-start .chat-bubble{grid-column-start:2;border-bottom-left-radius:0}.chat-start .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");left:-.75rem}[dir=rtl] .chat-start .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e")}.chat-end{place-items:end;grid-template-columns:1fr auto}.chat-end .chat-header,.chat-end .chat-footer{grid-column-start:1}.chat-end .chat-image{grid-column-start:2}.chat-end .chat-bubble{grid-column-start:1;border-bottom-right-radius:0}.chat-end .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");left:100%}[dir=rtl] .chat-end .chat-bubble:before{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e")}.divider{display:flex;flex-direction:row;align-items:center;align-self:stretch;margin-top:1rem;margin-bottom:1rem;height:1rem;white-space:nowrap}.divider:before,.divider:after{content:"";flex-grow:1;height:.125rem;width:100%}.dropdown{position:relative;display:inline-block}.dropdown>*:focus{outline:2px solid transparent;outline-offset:2px}.dropdown .dropdown-content{position:absolute}.dropdown:is(:not(details)) .dropdown-content{visibility:hidden;opacity:0;transform-origin:top;--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dropdown-end .dropdown-content{right:0px}.dropdown-left .dropdown-content{top:0px;right:100%;bottom:auto;transform-origin:right}.dropdown-right .dropdown-content{left:100%;top:0px;bottom:auto;transform-origin:left}.dropdown-bottom .dropdown-content{bottom:auto;top:100%;transform-origin:top}.dropdown-top .dropdown-content{bottom:100%;top:auto;transform-origin:bottom}.dropdown-end.dropdown-right .dropdown-content,.dropdown-end.dropdown-left .dropdown-content{bottom:0px;top:auto}.dropdown.dropdown-open .dropdown-content,.dropdown:not(.dropdown-hover):focus .dropdown-content,.dropdown:focus-within .dropdown-content{visibility:visible;opacity:1}@media (hover: hover){.dropdown.dropdown-hover:hover .dropdown-content{visibility:visible;opacity:1}.btm-nav>*.disabled:hover,.btm-nav>*[disabled]:hover{pointer-events:none;--tw-border-opacity: 0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity: .1;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.btn:hover{--tw-border-opacity: 1;border-color:hsl(var(--b3) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b3) / var(--tw-bg-opacity))}.btn-primary:hover{--tw-border-opacity: 1;border-color:hsl(var(--pf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity))}.btn-neutral:hover{--tw-border-opacity: 1;border-color:hsl(var(--nf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--nf) / var(--tw-bg-opacity))}.btn-error:hover{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity))}.btn.glass:hover{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-ghost:hover{--tw-border-opacity: 0;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .2}.btn-outline:hover{--tw-border-opacity: 1;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--b1) / var(--tw-text-opacity))}.btn-outline.btn-primary:hover{--tw-border-opacity: 1;border-color:hsl(var(--pf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary:hover{--tw-border-opacity: 1;border-color:hsl(var(--sf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sf) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent:hover{--tw-border-opacity: 1;border-color:hsl(var(--af) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--af) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btn-outline.btn-success:hover{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc) / var(--tw-text-opacity))}.btn-outline.btn-info:hover{--tw-border-opacity: 1;border-color:hsl(var(--in) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--inc) / var(--tw-text-opacity))}.btn-outline.btn-warning:hover{--tw-border-opacity: 1;border-color:hsl(var(--wa) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--wac) / var(--tw-text-opacity))}.btn-outline.btn-error:hover{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--erc) / var(--tw-text-opacity))}.btn-disabled:hover,.btn[disabled]:hover,.btn:disabled:hover{--tw-border-opacity: 0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity: .2;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.btn:is(input[type="checkbox"]:checked):hover,.btn:is(input[type="radio"]:checked):hover{--tw-border-opacity: 1;border-color:hsl(var(--pf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity))}.dropdown.dropdown-hover:hover .dropdown-content{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:where(.menu li:not(.menu-title):not(.disabled) > *:not(ul):not(details):not(.menu-title)):not(.active):hover,:where(.menu li:not(.menu-title):not(.disabled) > details > summary:not(.menu-title)):not(.active):hover{cursor:pointer;background-color:hsl(var(--bc) / .1);--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}}.dropdown:is(details) summary::-webkit-details-marker{display:none}.indicator{position:relative;display:inline-flex;width:-moz-max-content;width:max-content}.indicator :where(.indicator-item){z-index:1;position:absolute;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));white-space:nowrap}.input{flex-shrink:1;height:3rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:2;line-height:1.5rem;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: 0;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));border-radius:var(--rounded-btn, .5rem)}.input-group>.input{isolation:isolate}.input-group>*,.input-group>.input,.input-group>.textarea,.input-group>.select{border-radius:0}.join{display:inline-flex;align-items:stretch;border-radius:var(--rounded-btn, .5rem)}.join :where(.join-item){border-radius:0}.join .join-item:not(:first-child):not(:last-child),.join *:not(:first-child):not(:last-child) .join-item{border-radius:0}.join .join-item:first-child:not(:last-child),.join *:first-child:not(:last-child) .join-item{border-top-right-radius:0;border-bottom-right-radius:0}.join :where(.join-item:first-child:not(:last-child)),.join :where(*:first-child:not(:last-child) .join-item){border-bottom-left-radius:inherit;border-top-left-radius:inherit}.join .join-item:last-child:not(:first-child),.join *:last-child:not(:first-child) .join-item{border-bottom-left-radius:0;border-top-left-radius:0}.join :where(.join-item:last-child:not(:first-child)),.join :where(*:last-child:not(:first-child) .join-item){border-top-right-radius:inherit;border-bottom-right-radius:inherit}:where(.join *){border-radius:inherit}.menu li.disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:hsl(var(--bc) / .3)}:where(.menu li) .badge{justify-self:end}.modal{pointer-events:none;position:fixed;inset:0px;margin:0;display:grid;height:100%;max-height:none;width:100%;max-width:none;justify-items:center;padding:0;opacity:0;overscroll-behavior:contain;z-index:999;background-color:transparent;color:inherit;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-property:transform,opacity,visibility;overflow-y:hidden}:where(.modal){align-items:center}.modal-open,.modal:target,.modal-toggle:checked+.modal,.modal[open]{pointer-events:auto;visibility:visible;opacity:1}:root:has(:is(.modal-open,.modal:target,.modal-toggle:checked + .modal,.modal[open])){overflow:hidden}.table{position:relative;width:100%;text-align:left;font-size:.875rem;line-height:1.25rem;border-radius:var(--rounded-box, 1rem)}.table :where(.table-pin-rows thead tr){position:sticky;top:0px;z-index:1;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.table :where(.table-pin-rows tfoot tr){position:sticky;bottom:0px;z-index:1;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.table :where(.table-pin-cols tr th){position:sticky;left:0px;right:0px;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.table-zebra tbody tr:nth-child(even) :where(.table-pin-cols tr th){--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity))}.textarea{flex-shrink:1;min-height:3rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;line-height:2;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: 0;--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity));border-radius:var(--rounded-btn, .5rem)}.toast{position:fixed;display:flex;min-width:-moz-fit-content;min-width:fit-content;flex-direction:column;white-space:nowrap;gap:.5rem;padding:1rem}.toggle{flex-shrink:0;--tglbg: hsl(var(--b1));--handleoffset: 1.5rem;--handleoffsetcalculator: calc(var(--handleoffset) * -1);--togglehandleborder: 0 0;height:1.5rem;width:3rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-border-opacity: .2;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .5;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);border-radius:var(--rounded-badge, 1.9rem);transition:background,box-shadow var(--animation-input, .2s) ease-in-out;box-shadow:var(--handleoffsetcalculator) 0 0 2px var(--tglbg) inset,0 0 0 2px var(--tglbg) inset,var(--togglehandleborder)}.alert-info{border-color:hsl(var(--in) / .2);--tw-text-opacity: 1;color:hsl(var(--inc) / var(--tw-text-opacity));--alert-bg: hsl(var(--in));--alert-bg-mix: hsl(var(--b1))}.alert-success{border-color:hsl(var(--su) / .2);--tw-text-opacity: 1;color:hsl(var(--suc) / var(--tw-text-opacity));--alert-bg: hsl(var(--su));--alert-bg-mix: hsl(var(--b1))}.alert-error{border-color:hsl(var(--er) / .2);--tw-text-opacity: 1;color:hsl(var(--erc) / var(--tw-text-opacity));--alert-bg: hsl(var(--er));--alert-bg-mix: hsl(var(--b1))}.badge-success{border-color:transparent;--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc) / var(--tw-text-opacity))}.badge-outline.badge-success{--tw-text-opacity: 1;color:hsl(var(--su) / var(--tw-text-opacity))}.btm-nav>*.disabled,.btm-nav>*[disabled]{pointer-events:none;--tw-border-opacity: 0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity: .1;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.btn:active:hover,.btn:active:focus{animation:button-pop 0s ease-out;transform:scale(var(--btn-focus-scale, .97))}.btn:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px}.btn-primary{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity));outline-color:hsl(var(--p) / 1)}.btn-primary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--pf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity))}.btn-neutral{--tw-border-opacity: 1;border-color:hsl(var(--n) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--nc) / var(--tw-text-opacity));outline-color:hsl(var(--n) / 1)}.btn-neutral.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--nf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--nf) / var(--tw-bg-opacity))}.btn-error{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--erc) / var(--tw-text-opacity));outline-color:hsl(var(--er) / 1)}.btn-error.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity))}.btn.glass{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:currentColor}.btn.glass.btn-active{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-ghost{border-width:1px;border-color:transparent;background-color:transparent;color:currentColor;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:currentColor}.btn-ghost.btn-active{--tw-border-opacity: 0;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .2}.btn-outline{border-color:currentColor;background-color:transparent;--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.btn-outline.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--bc) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--b1) / var(--tw-text-opacity))}.btn-outline.btn-primary{--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.btn-outline.btn-primary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--pf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-outline.btn-secondary{--tw-text-opacity: 1;color:hsl(var(--s) / var(--tw-text-opacity))}.btn-outline.btn-secondary.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--sf) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--sf) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--sc) / var(--tw-text-opacity))}.btn-outline.btn-accent{--tw-text-opacity: 1;color:hsl(var(--a) / var(--tw-text-opacity))}.btn-outline.btn-accent.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--af) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--af) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--ac) / var(--tw-text-opacity))}.btn-outline.btn-success{--tw-text-opacity: 1;color:hsl(var(--su) / var(--tw-text-opacity))}.btn-outline.btn-success.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--su) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--suc) / var(--tw-text-opacity))}.btn-outline.btn-info{--tw-text-opacity: 1;color:hsl(var(--in) / var(--tw-text-opacity))}.btn-outline.btn-info.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--in) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--inc) / var(--tw-text-opacity))}.btn-outline.btn-warning{--tw-text-opacity: 1;color:hsl(var(--wa) / var(--tw-text-opacity))}.btn-outline.btn-warning.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--wa) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--wac) / var(--tw-text-opacity))}.btn-outline.btn-error{--tw-text-opacity: 1;color:hsl(var(--er) / var(--tw-text-opacity))}.btn-outline.btn-error.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--er) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--erc) / var(--tw-text-opacity))}.btn.btn-disabled,.btn[disabled],.btn:disabled{--tw-border-opacity: 0;background-color:hsl(var(--n) / var(--tw-bg-opacity));--tw-bg-opacity: .2;color:hsl(var(--bc) / var(--tw-text-opacity));--tw-text-opacity: .2}.btn-group>input[type=radio]:checked.btn,.btn-group>.btn-active{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn-group>input[type=radio]:checked.btn:focus-visible,.btn-group>.btn-active:focus-visible{outline-style:solid;outline-width:2px;outline-color:hsl(var(--p) / 1)}.btn:is(input[type="checkbox"]:checked),.btn:is(input[type="radio"]:checked){--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(var(--pc) / var(--tw-text-opacity))}.btn:is(input[type="checkbox"]:checked):focus-visible,.btn:is(input[type="radio"]:checked):focus-visible{outline-color:hsl(var(--p) / 1)}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, .98))}40%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}.divider:before{background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .1}.divider:after{background-color:hsl(var(--bc) / var(--tw-bg-opacity));--tw-bg-opacity: .1}.divider:not(:empty){gap:1rem}.dropdown.dropdown-open .dropdown-content,.dropdown:focus .dropdown-content,.dropdown:focus-within .dropdown-content{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.input[list]::-webkit-calendar-picker-indicator{line-height:1em}.input:focus{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:hsl(var(--bc) / .2)}.input-primary{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.input-primary:focus{outline-color:hsl(var(--p) / 1)}.input-disabled,.input:disabled,.input[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:hsl(var(--b2) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity));--tw-text-opacity: .2}.input-disabled::-moz-placeholder,.input:disabled::-moz-placeholder,.input[disabled]::-moz-placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.input-disabled::placeholder,.input:disabled::placeholder,.input[disabled]::placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.join>:where(*:not(:first-child)){margin-top:0;margin-bottom:0;margin-left:-1px}.join-item:focus{isolation:isolate}.loading{pointer-events:none;display:inline-block;aspect-ratio:1 / 1;width:1.5rem;background-color:currentColor;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E")}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E")}.loading-dots{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_qM83%7Banimation:spinner_8HQG 1.05s infinite%7D.spinner_oXPr%7Banimation-delay:.1s%7D.spinner_ZTLf%7Banimation-delay:.2s%7D@keyframes spinner_8HQG%7B0%25,57.14%25%7Banimation-timing-function:cubic-bezier(0.33,.66,.66,1);transform:translate(0)%7D28.57%25%7Banimation-timing-function:cubic-bezier(0.33,0,.66,.33);transform:translateY(-6px)%7D100%25%7Btransform:translate(0)%7D%7D%3C/style%3E%3Ccircle class='spinner_qM83' cx='4' cy='12' r='3'/%3E%3Ccircle class='spinner_qM83 spinner_oXPr' cx='12' cy='12' r='3'/%3E%3Ccircle class='spinner_qM83 spinner_ZTLf' cx='20' cy='12' r='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_qM83%7Banimation:spinner_8HQG 1.05s infinite%7D.spinner_oXPr%7Banimation-delay:.1s%7D.spinner_ZTLf%7Banimation-delay:.2s%7D@keyframes spinner_8HQG%7B0%25,57.14%25%7Banimation-timing-function:cubic-bezier(0.33,.66,.66,1);transform:translate(0)%7D28.57%25%7Banimation-timing-function:cubic-bezier(0.33,0,.66,.33);transform:translateY(-6px)%7D100%25%7Btransform:translate(0)%7D%7D%3C/style%3E%3Ccircle class='spinner_qM83' cx='4' cy='12' r='3'/%3E%3Ccircle class='spinner_qM83 spinner_oXPr' cx='12' cy='12' r='3'/%3E%3Ccircle class='spinner_qM83 spinner_ZTLf' cx='20' cy='12' r='3'/%3E%3C/svg%3E")}.loading-xs{width:1rem}.loading-lg{width:2.5rem}:where(.menu li:not(.menu-title):not(.disabled) > *:not(ul):not(details):not(.menu-title)):not(summary):not(.active).focus,:where(.menu li:not(.menu-title):not(.disabled) > *:not(ul):not(details):not(.menu-title)):not(summary):not(.active):focus,:where(.menu li:not(.menu-title):not(.disabled) > *:not(ul):not(details):not(.menu-title)):is(summary):not(.active):focus-visible,:where(.menu li:not(.menu-title):not(.disabled) > details > summary:not(.menu-title)):not(summary):not(.active).focus,:where(.menu li:not(.menu-title):not(.disabled) > details > summary:not(.menu-title)):not(summary):not(.active):focus,:where(.menu li:not(.menu-title):not(.disabled) > details > summary:not(.menu-title)):is(summary):not(.active):focus-visible{cursor:pointer;background-color:hsl(var(--bc) / .1);--tw-text-opacity: 1;color:hsl(var(--bc) / var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}.mockup-browser .mockup-browser-toolbar .input{position:relative;margin-left:auto;margin-right:auto;display:block;height:1.75rem;width:24rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity));padding-left:2rem}.mockup-browser .mockup-browser-toolbar .input:before{content:"";position:absolute;top:50%;left:.5rem;aspect-ratio:1 / 1;height:.75rem;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:2px;border-color:currentColor;opacity:.6}.mockup-browser .mockup-browser-toolbar .input:after{content:"";position:absolute;top:50%;left:1.25rem;height:.5rem;--tw-translate-y: 25%;--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1px;border-color:currentColor;opacity:.6}.modal:not(dialog:not(.modal-open)),.modal::backdrop{background-color:#0000004d;animation:modal-pop .2s ease-out}.modal-open .modal-box,.modal-toggle:checked+.modal .modal-box,.modal:target .modal-box,.modal[open] .modal-box{--tw-translate-y: 0px;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes modal-pop{0%{opacity:0}}@keyframes progress-loading{50%{background-position-x:-115%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px hsl(var(--b1)) inset,0 0 0 12px hsl(var(--b1)) inset}50%{box-shadow:0 0 0 3px hsl(var(--b1)) inset,0 0 0 3px hsl(var(--b1)) inset}to{box-shadow:0 0 0 4px hsl(var(--b1)) inset,0 0 0 4px hsl(var(--b1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}.table :where(th,td){padding:.75rem 1rem;vertical-align:middle}.table tr.active,.table tr.active:nth-child(even),.table-zebra tbody tr:nth-child(even){--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity))}.table-zebra tr.active,.table-zebra tr.active:nth-child(even),.table-zebra-zebra tbody tr:nth-child(even){--tw-bg-opacity: 1;background-color:hsl(var(--b3) / var(--tw-bg-opacity))}.table :where(thead,tbody) :where(tr:not(:last-child)),.table :where(thead,tbody) :where(tr:first-child:last-child){border-bottom-width:1px;--tw-border-opacity: 1;border-bottom-color:hsl(var(--b2) / var(--tw-border-opacity))}.table :where(thead,tfoot){white-space:nowrap;font-size:.75rem;line-height:1rem;font-weight:700;color:hsl(var(--bc) / .6)}.textarea:focus{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:hsl(var(--bc) / .2)}.textarea-disabled,.textarea:disabled,.textarea[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:hsl(var(--b2) / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity));--tw-text-opacity: .2}.textarea-disabled::-moz-placeholder,.textarea:disabled::-moz-placeholder,.textarea[disabled]::-moz-placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.textarea-disabled::placeholder,.textarea:disabled::placeholder,.textarea[disabled]::placeholder{color:hsl(var(--bc) / var(--tw-placeholder-opacity));--tw-placeholder-opacity: .2}.toast>*{animation:toast-pop .25s ease-out}@keyframes toast-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}[dir=rtl] .toggle{--handleoffsetcalculator: calc(var(--handleoffset) * 1)}.toggle:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:hsl(var(--bc) / .2)}.toggle:checked,.toggle[checked=true],.toggle[aria-checked=true]{--handleoffsetcalculator: var(--handleoffset);--tw-border-opacity: 1;--tw-bg-opacity: 1}[dir=rtl] .toggle:checked,[dir=rtl] .toggle[checked=true],[dir=rtl] .toggle[aria-checked=true]{--handleoffsetcalculator: calc(var(--handleoffset) * -1)}.toggle:indeterminate{--tw-border-opacity: 1;--tw-bg-opacity: 1;box-shadow:calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset,calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset,0 0 0 2px var(--tglbg) inset}[dir=rtl] .toggle:indeterminate{box-shadow:calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset,calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset,0 0 0 2px var(--tglbg) inset}.toggle:disabled{cursor:not-allowed;--tw-border-opacity: 1;border-color:hsl(var(--bc) / var(--tw-border-opacity));background-color:transparent;opacity:.3;--togglehandleborder: 0 0 0 3px hsl(var(--bc)) inset, var(--handleoffsetcalculator) 0 0 3px hsl(var(--bc)) inset}.glass,.glass.btn-active{border:none;-webkit-backdrop-filter:blur(var(--glass-blur, 40px));backdrop-filter:blur(var(--glass-blur, 40px));background-color:transparent;background-image:linear-gradient(135deg,rgb(255 255 255 / var(--glass-opacity, 30%)) 0%,rgb(0 0 0 / 0%) 100%),linear-gradient(var(--glass-reflex-degree, 100deg),rgb(255 255 255 / var(--glass-reflex-opacity, 10%)) 25%,rgb(0 0 0 / 0%) 25%);box-shadow:0 0 0 1px rgb(255 255 255 / var(--glass-border-opacity, 10%)) inset,0 0 0 2px #0000000d;text-shadow:0 1px rgb(0 0 0 / var(--glass-text-shadow-opacity, 5%))}@media (hover: hover){.glass.btn-active{border:none;-webkit-backdrop-filter:blur(var(--glass-blur, 40px));backdrop-filter:blur(var(--glass-blur, 40px));background-color:transparent;background-image:linear-gradient(135deg,rgb(255 255 255 / var(--glass-opacity, 30%)) 0%,rgb(0 0 0 / 0%) 100%),linear-gradient(var(--glass-reflex-degree, 100deg),rgb(255 255 255 / var(--glass-reflex-opacity, 10%)) 25%,rgb(0 0 0 / 0%) 25%);box-shadow:0 0 0 1px rgb(255 255 255 / var(--glass-border-opacity, 10%)) inset,0 0 0 2px #0000000d;text-shadow:0 1px rgb(0 0 0 / var(--glass-text-shadow-opacity, 5%))}}.btn-xs{height:1.5rem;padding-left:.5rem;padding-right:.5rem;min-height:1.5rem;font-size:.75rem}.btn-sm{height:2rem;padding-left:.75rem;padding-right:.75rem;min-height:2rem;font-size:.875rem}.btn-square:where(.btn-xs){height:1.5rem;width:1.5rem;padding:0}.btn-square:where(.btn-sm){height:2rem;width:2rem;padding:0}.btn-circle:where(.btn-xs){height:1.5rem;width:1.5rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-sm){height:2rem;width:2rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-md){height:3rem;width:3rem;border-radius:9999px;padding:0}.btn-circle:where(.btn-lg){height:4rem;width:4rem;border-radius:9999px;padding:0}.divider-horizontal{flex-direction:column}.divider-horizontal:before{height:100%;width:.125rem}.divider-horizontal:after{height:100%;width:.125rem}.indicator :where(.indicator-item){right:0px;left:auto;top:0px;bottom:auto;--tw-translate-x: 50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.indicator :where(.indicator-item.indicator-start){right:auto;left:0px;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.indicator :where(.indicator-item.indicator-center){right:50%;left:50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.indicator :where(.indicator-item.indicator-end){right:0px;left:auto;--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.indicator :where(.indicator-item.indicator-bottom){top:auto;bottom:0px;--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.indicator :where(.indicator-item.indicator-middle){top:50%;bottom:50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.indicator :where(.indicator-item.indicator-top){top:0px;bottom:auto;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.input-sm{height:2rem;padding-left:.75rem;padding-right:.75rem;font-size:.875rem;line-height:2rem}.join.join-vertical{flex-direction:column}.join.join-vertical .join-item:first-child:not(:last-child),.join.join-vertical *:first-child:not(:last-child) .join-item{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-top-right-radius:inherit}.join.join-vertical .join-item:last-child:not(:first-child),.join.join-vertical *:last-child:not(:first-child) .join-item{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.join.join-horizontal{flex-direction:row}.join.join-horizontal .join-item:first-child:not(:last-child),.join.join-horizontal *:first-child:not(:last-child) .join-item{border-bottom-right-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit;border-top-left-radius:inherit}.join.join-horizontal .join-item:last-child:not(:first-child),.join.join-horizontal *:last-child:not(:first-child) .join-item{border-bottom-left-radius:0;border-top-left-radius:0;border-bottom-right-radius:inherit;border-top-right-radius:inherit}:where(.toast){right:0px;left:auto;top:auto;bottom:0px;--tw-translate-x: 0px;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-start){right:auto;left:0px;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-center){right:50%;left:50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-end){right:0px;left:auto;--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-bottom){top:auto;bottom:0px;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-middle){top:50%;bottom:auto;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.toast:where(.toast-top){top:0px;bottom:auto;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-group .btn:not(:first-child):not(:last-child){border-radius:0}.btn-group .btn:first-child:not(:last-child){margin-top:-0px;margin-left:-1px;border-top-left-radius:var(--rounded-btn, .5rem);border-top-right-radius:0;border-bottom-left-radius:var(--rounded-btn, .5rem);border-bottom-right-radius:0}.btn-group .btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:var(--rounded-btn, .5rem);border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn, .5rem)}.btn-group-horizontal .btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-horizontal .btn:first-child:not(:last-child){margin-top:-0px;margin-left:-1px;border-top-left-radius:var(--rounded-btn, .5rem);border-top-right-radius:0;border-bottom-left-radius:var(--rounded-btn, .5rem);border-bottom-right-radius:0}.btn-group-horizontal .btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:var(--rounded-btn, .5rem);border-bottom-left-radius:0;border-bottom-right-radius:var(--rounded-btn, .5rem)}.btn-group-vertical .btn:first-child:not(:last-child){margin-top:-1px;margin-left:-0px;border-top-left-radius:var(--rounded-btn, .5rem);border-top-right-radius:var(--rounded-btn, .5rem);border-bottom-left-radius:0;border-bottom-right-radius:0}.btn-group-vertical .btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--rounded-btn, .5rem);border-bottom-right-radius:var(--rounded-btn, .5rem)}.divider-horizontal{margin-top:0;margin-bottom:0;margin-left:1rem;margin-right:1rem;height:auto;width:1rem}.join.join-vertical>:where(*:not(:first-child)){margin-left:0;margin-right:0;margin-top:-1px}.join.join-horizontal>:where(*:not(:first-child)){margin-top:0;margin-bottom:0;margin-left:-1px}.table-sm :not(thead):not(tfoot) tr{font-size:.875rem;line-height:1.25rem}.table-sm :where(th,td){padding:.5rem .75rem}.btn-outline{border-width:2px}.focus{--tw-bg-opacity: 1 !important;background-color:hsl(var(--p) / var(--tw-bg-opacity))!important;--tw-text-opacity: 1;color:hsl(var(--b1) / var(--tw-text-opacity))}.focus:hover{--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity))}.focus:focus{--tw-bg-opacity: 1;background-color:hsl(var(--pf) / var(--tw-bg-opacity))}.btn-ghost:disabled{background-color:transparent}.btn-outline.btn-error:hover,.btn-outline.btn-success:hover,.btn-outline.btn-info:hover,.btn-outline.btn-warning:hover,.btn-error,.btn-info,.btn-success,.btn-warning{--tw-text-opacity: 1;color:hsl(var(--b1) / var(--tw-text-opacity))}.btn-error:hover:not(.btn-outline),.btn-error.btn-active:not(.btn-outline),.btn-info:hover:not(.btn-outline),.btn-info.btn-active:not(.btn-outline),.btn-success:hover:not(.btn-outline),.btn-success.btn-active:not(.btn-outline),.btn-warning:hover:not(.btn-outline),.btn-warning.btn-active:not(.btn-outline){--tw-brightness: brightness(.8);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.select,.input,.textarea{overflow:hidden;border-width:0px;background-color:transparent;outline-style:solid;outline-width:2px;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:75ms!important}.select:focus,.input:focus,.textarea:focus{outline-color:hsl(var(--p) / 1)}.toggle{border-width:2px!important;background-image:none!important}@media (hover:hover){.chat-bubble a:hover{--tw-text-opacity: 1 !important;color:hsl(var(--in) / var(--tw-text-opacity))!important}}.chat-bubble a{cursor:pointer!important;text-decoration-line:underline!important;--tw-text-opacity: 1 !important;color:hsl(var(--in) / var(--tw-text-opacity))!important}.chat-bubble a:focus{outline:2px solid transparent!important;outline-offset:2px!important}.chat-bubble a:focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important}@media (hover:hover){.chat-bubble table tr.hover:hover,.chat-bubble table tr.hover:nth-child(even):hover{--tw-bg-opacity: 1 !important;background-color:hsl(var(--b2) / var(--tw-bg-opacity))!important}}.chat-bubble table{position:relative!important;width:100%!important;text-align:left!important;font-size:.875rem!important;line-height:1.25rem!important;border-radius:var(--rounded-box, 1rem)!important}.chat-bubble table :where(.table-pin-rows thead tr){position:sticky!important;top:0px!important;z-index:1!important;--tw-bg-opacity: 1 !important;background-color:hsl(var(--b1) / var(--tw-bg-opacity))!important}.chat-bubble table :where(.table-pin-rows tfoot tr){position:sticky!important;bottom:0px!important;z-index:1!important;--tw-bg-opacity: 1 !important;background-color:hsl(var(--b1) / var(--tw-bg-opacity))!important}.chat-bubble table :where(.table-pin-cols tr th){position:sticky!important;left:0px!important;right:0px!important;--tw-bg-opacity: 1 !important;background-color:hsl(var(--b1) / var(--tw-bg-opacity))!important}.chat-bubble table :where(th,td){padding:.75rem 1rem!important;vertical-align:middle!important}.chat-bubble table tr.active,.chat-bubble table tr.active:nth-child(even){--tw-bg-opacity: 1 !important;background-color:hsl(var(--b2) / var(--tw-bg-opacity))!important}.chat-bubble table :where(thead,tbody) :where(tr:not(:last-child)),.chat-bubble table :where(thead,tbody) :where(tr:first-child:last-child){border-bottom-width:1px!important;--tw-border-opacity: 1 !important;border-bottom-color:hsl(var(--b2) / var(--tw-border-opacity))!important}.chat-bubble table :where(thead,tfoot){white-space:nowrap!important;font-size:.75rem!important;line-height:1rem!important;font-weight:700!important;color:hsl(var(--bc) / .6)!important}.chat-bubble table :not(thead):not(tfoot) tr{font-size:.75rem!important;line-height:1rem!important}.chat-bubble table :where(th,td){padding:.25rem .5rem!important}.chat-bubble table{display:table!important}.chat-bubble table :where(thead,tfoot){--tw-text-opacity: 1 !important;color:hsl(var(--b1) / var(--tw-text-opacity))!important}.chat-bubble pre{margin-top:1rem!important;margin-bottom:1rem!important;white-space:pre-wrap!important}.chat-bubble ul{list-style-position:inside!important;list-style-type:disc!important}.chat-bubble ol{list-style-position:inside!important;list-style-type:decimal!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0px}.inset-y-0{top:0px;bottom:0px}.\!-right-1\/4{right:-25%!important}.bottom-0{bottom:0px}.bottom-28{bottom:7rem}.left-0{left:0px}.right-0{right:0px}.right-2{right:.5rem}.right-4{right:1rem}.top-1\/2{top:50%}.top-2{top:.5rem}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.ml-2{margin-left:.5rem}.mt-2{margin-top:.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.hidden{display:none}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-full{height:100%}.max-h-20{max-height:5rem}.min-h-fit{min-height:-moz-fit-content;min-height:fit-content}.min-h-full{min-height:100%}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-none{grid-template-columns:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.text-ellipsis{text-overflow:ellipsis}.break-words{overflow-wrap:break-word}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.\!border-2{border-width:2px!important}.border-2{border-width:2px}.border-dashed{border-style:dashed}.\!border-primary{--tw-border-opacity: 1 !important;border-color:hsl(var(--p) / var(--tw-border-opacity))!important}.border-neutral{--tw-border-opacity: 1;border-color:hsl(var(--n) / var(--tw-border-opacity))}.border-primary{--tw-border-opacity: 1;border-color:hsl(var(--p) / var(--tw-border-opacity))}.bg-base-100{--tw-bg-opacity: 1;background-color:hsl(var(--b1) / var(--tw-bg-opacity))}.bg-base-100\/50{background-color:hsl(var(--b1) / .5)}.bg-base-200{--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity))}.bg-black\/25{background-color:#00000040}.bg-error{--tw-bg-opacity: 1;background-color:hsl(var(--er) / var(--tw-bg-opacity))}.bg-info{--tw-bg-opacity: 1;background-color:hsl(var(--in) / var(--tw-bg-opacity))}.bg-success{--tw-bg-opacity: 1;background-color:hsl(var(--su) / var(--tw-bg-opacity))}.bg-warning{--tw-bg-opacity: 1;background-color:hsl(var(--wa) / var(--tw-bg-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pr-10{padding-right:2.5rem}.pr-20{padding-right:5rem}.text-center{text-align:center}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.text-base-100{--tw-text-opacity: 1;color:hsl(var(--b1) / var(--tw-text-opacity))}.text-neutral{--tw-text-opacity: 1;color:hsl(var(--n) / var(--tw-text-opacity))}.text-primary{--tw-text-opacity: 1;color:hsl(var(--p) / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\!outline-offset-0{outline-offset:0px!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition-all{transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\@container{container-type:inline-size}.selection\:bg-primary *::-moz-selection{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity))}.selection\:bg-primary *::selection{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity))}.selection\:bg-primary::-moz-selection{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity))}.selection\:bg-primary::selection{--tw-bg-opacity: 1;background-color:hsl(var(--p) / var(--tw-bg-opacity))}.before\:bg-base-200:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity))}.after\:bg-base-200:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:hsl(var(--b2) / var(--tw-bg-opacity))}@container (min-width: 28rem){.\@md\:gap-4{gap:1rem}}@media (min-width: 768px){.md\:max-w-xl{max-width:36rem}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:pb-0{padding-bottom:0}.md\:pb-20{padding-bottom:5rem}.md\:pb-24{padding-bottom:6rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}/*!
- Theme: GitHub
- Description: Light theme as seen on github.com
- Author: github.com
- Maintainer: @Hirse
- Updated: 2021-05-15
-
- Outdated base version: https://github.com/primer/github-syntax-light
- Current colors taken from GitHub's CSS
-*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
- Theme: GitHub Dark
- Description: Dark theme as seen on github.com
- Author: github.com
- Maintainer: @Hirse
- Updated: 2021-05-15
-
- Outdated base version: https://github.com/primer/github-syntax-dark
- Current colors taken from GitHub's CSS
-*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
diff --git a/core/cat/public/widget.js b/core/cat/public/widget.js
deleted file mode 100644
index 5210a4e66..000000000
--- a/core/cat/public/widget.js
+++ /dev/null
@@ -1,104 +0,0 @@
-var Aw=Object.defineProperty;var yw=(e,t,n)=>t in e?Aw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ft=(e,t,n)=>(yw(e,typeof t!="symbol"?t+"":t,n),n),LS=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var _t=(e,t,n)=>(LS(e,t,"read from private field"),n?n.call(e):t.get(e)),kr=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},Un=(e,t,n,r)=>(LS(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();const Iw="modulepreload",Dw=function(e){return"/"+e},PS={},kS=function(t,n,r){if(!n||n.length===0)return t();const a=document.getElementsByTagName("link");return Promise.all(n.map(o=>{if(o=Dw(o),o in PS)return;PS[o]=!0;const l=o.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(!!r)for(let p=a.length-1;p>=0;p--){const g=a[p];if(g.href===o&&(!l||g.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${c}`))return;const d=document.createElement("link");if(d.rel=l?"stylesheet":Iw,l||(d.as="script",d.crossOrigin=""),d.href=o,document.head.appendChild(d),l)return new Promise((p,g)=>{d.addEventListener("load",p),d.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>t()).catch(o=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o})};function Og(e,t){const n=Object.create(null),r=e.split(",");for(let a=0;a!!n[a.toLowerCase()]:a=>!!n[a]}const gt={},ta=[],Hn=()=>{},xw=()=>!1,Mw=/^on[^a-z]/,hl=e=>Mw.test(e),Ag=e=>e.startsWith("onUpdate:"),Ot=Object.assign,yg=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ww=Object.prototype.hasOwnProperty,rt=(e,t)=>ww.call(e,t),ke=Array.isArray,na=e=>Rl(e)==="[object Map]",iv=e=>Rl(e)==="[object Set]",$e=e=>typeof e=="function",At=e=>typeof e=="string",Ig=e=>typeof e=="symbol",pt=e=>e!==null&&typeof e=="object",av=e=>pt(e)&&$e(e.then)&&$e(e.catch),ov=Object.prototype.toString,Rl=e=>ov.call(e),Lw=e=>Rl(e).slice(8,-1),sv=e=>Rl(e)==="[object Object]",Dg=e=>At(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,js=Og(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Cl=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Pw=/-(\w)/g,oa=Cl(e=>e.replace(Pw,(t,n)=>n?n.toUpperCase():"")),kw=/\B([A-Z])/g,da=Cl(e=>e.replace(kw,"-$1").toLowerCase()),lv=Cl(e=>e.charAt(0).toUpperCase()+e.slice(1)),Fu=Cl(e=>e?`on${lv(e)}`:""),lo=(e,t)=>!Object.is(e,t),el=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},$m=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Fw=e=>{const t=At(e)?Number(e):NaN;return isNaN(t)?e:t};let FS;const Wm=()=>FS||(FS=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xg(e){if(ke(e)){const t={};for(let n=0;n{if(n){const r=n.split(Bw);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Yn(e){let t="";if(At(e))t=e;else if(ke(e))for(let n=0;nAt(e)?e:e==null?"":ke(e)||pt(e)&&(e.toString===ov||!$e(e.toString))?JSON.stringify(e,uv,2):String(e),uv=(e,t)=>t&&t.__v_isRef?uv(e,t.value):na(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,a])=>(n[`${r} =>`]=a,n),{})}:iv(t)?{[`Set(${t.size})`]:[...t.values()]}:pt(t)&&!ke(t)&&!sv(t)?String(t):t;let gn;class _v{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=gn,!t&&gn&&(this.index=(gn.scopes||(gn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=gn;try{return gn=this,t()}finally{gn=n}}}on(){gn=this}off(){gn=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},mv=e=>(e.w&Qr)>0,gv=e=>(e.n&Qr)>0,$w=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(p==="length"||p>=u)&&c.push(d)})}else switch(n!==void 0&&c.push(l.get(n)),t){case"add":ke(e)?Dg(n)&&c.push(l.get("length")):(c.push(l.get(bi)),na(e)&&c.push(l.get(Km)));break;case"delete":ke(e)||(c.push(l.get(bi)),na(e)&&c.push(l.get(Km)));break;case"set":na(e)&&c.push(l.get(bi));break}if(c.length===1)c[0]&&Qm(c[0]);else{const u=[];for(const d of c)d&&u.push(...d);Qm(wg(u))}}function Qm(e,t){const n=ke(e)?e:[...e];for(const r of n)r.computed&&BS(r);for(const r of n)r.computed||BS(r)}function BS(e,t){(e!==Gn||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function zw(e,t){var n;return(n=ul.get(e))==null?void 0:n.get(t)}const Kw=Og("__proto__,__v_isRef,__isVue"),Sv=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ig)),Qw=Pg(),Xw=Pg(!1,!0),Zw=Pg(!0),GS=Jw();function Jw(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=nt(this);for(let o=0,l=this.length;o{e[t]=function(...n){pa();const r=nt(this)[t].apply(this,n);return ma(),r}}),e}function jw(e){const t=nt(this);return sn(t,"has",e),t.hasOwnProperty(e)}function Pg(e=!1,t=!1){return function(r,a,o){if(a==="__v_isReactive")return!e;if(a==="__v_isReadonly")return e;if(a==="__v_isShallow")return t;if(a==="__v_raw"&&o===(e?t?gL:Cv:t?Rv:hv).get(r))return r;const l=ke(r);if(!e){if(l&&rt(GS,a))return Reflect.get(GS,a,o);if(a==="hasOwnProperty")return jw}const c=Reflect.get(r,a,o);return(Ig(a)?Sv.has(a):Kw(a))||(e||sn(r,"get",a),t)?c:ct(c)?l&&Dg(a)?c:c.value:pt(c)?e?Nl(c):nr(c):c}}const eL=bv(),tL=bv(!0);function bv(e=!1){return function(n,r,a,o){let l=n[r];if(sa(l)&&ct(l)&&!ct(a))return!1;if(!e&&(!_l(a)&&!sa(a)&&(l=nt(l),a=nt(a)),!ke(n)&&ct(l)&&!ct(a)))return l.value=a,!0;const c=ke(n)&&Dg(r)?Number(r)e,vl=e=>Reflect.getPrototypeOf(e);function ks(e,t,n=!1,r=!1){e=e.__v_raw;const a=nt(e),o=nt(t);n||(t!==o&&sn(a,"get",t),sn(a,"get",o));const{has:l}=vl(a),c=r?kg:n?Bg:co;if(l.call(a,t))return c(e.get(t));if(l.call(a,o))return c(e.get(o));e!==a&&e.get(t)}function Fs(e,t=!1){const n=this.__v_raw,r=nt(n),a=nt(e);return t||(e!==a&&sn(r,"has",e),sn(r,"has",a)),e===a?n.has(e):n.has(e)||n.has(a)}function Us(e,t=!1){return e=e.__v_raw,!t&&sn(nt(e),"iterate",bi),Reflect.get(e,"size",e)}function YS(e){e=nt(e);const t=nt(this);return vl(t).has.call(t,e)||(t.add(e),Rr(t,"add",e,e)),this}function qS(e,t){t=nt(t);const n=nt(this),{has:r,get:a}=vl(n);let o=r.call(n,e);o||(e=nt(e),o=r.call(n,e));const l=a.call(n,e);return n.set(e,t),o?lo(t,l)&&Rr(n,"set",e,t):Rr(n,"add",e,t),this}function HS(e){const t=nt(this),{has:n,get:r}=vl(t);let a=n.call(t,e);a||(e=nt(e),a=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return a&&Rr(t,"delete",e,void 0),o}function VS(){const e=nt(this),t=e.size!==0,n=e.clear();return t&&Rr(e,"clear",void 0,void 0),n}function Bs(e,t){return function(r,a){const o=this,l=o.__v_raw,c=nt(l),u=t?kg:e?Bg:co;return!e&&sn(c,"iterate",bi),l.forEach((d,p)=>r.call(a,u(d),u(p),o))}}function Gs(e,t,n){return function(...r){const a=this.__v_raw,o=nt(a),l=na(o),c=e==="entries"||e===Symbol.iterator&&l,u=e==="keys"&&l,d=a[e](...r),p=n?kg:t?Bg:co;return!t&&sn(o,"iterate",u?Km:bi),{next(){const{value:g,done:E}=d.next();return E?{value:g,done:E}:{value:c?[p(g[0]),p(g[1])]:p(g),done:E}},[Symbol.iterator](){return this}}}}function Fr(e){return function(...t){return e==="delete"?!1:this}}function sL(){const e={get(o){return ks(this,o)},get size(){return Us(this)},has:Fs,add:YS,set:qS,delete:HS,clear:VS,forEach:Bs(!1,!1)},t={get(o){return ks(this,o,!1,!0)},get size(){return Us(this)},has:Fs,add:YS,set:qS,delete:HS,clear:VS,forEach:Bs(!1,!0)},n={get(o){return ks(this,o,!0)},get size(){return Us(this,!0)},has(o){return Fs.call(this,o,!0)},add:Fr("add"),set:Fr("set"),delete:Fr("delete"),clear:Fr("clear"),forEach:Bs(!0,!1)},r={get(o){return ks(this,o,!0,!0)},get size(){return Us(this,!0)},has(o){return Fs.call(this,o,!0)},add:Fr("add"),set:Fr("set"),delete:Fr("delete"),clear:Fr("clear"),forEach:Bs(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Gs(o,!1,!1),n[o]=Gs(o,!0,!1),t[o]=Gs(o,!1,!0),r[o]=Gs(o,!0,!0)}),[e,n,t,r]}const[lL,cL,uL,_L]=sL();function Fg(e,t){const n=t?e?_L:uL:e?cL:lL;return(r,a,o)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?r:Reflect.get(rt(n,a)&&a in r?n:r,a,o)}const dL={get:Fg(!1,!1)},pL={get:Fg(!1,!0)},mL={get:Fg(!0,!1)},hv=new WeakMap,Rv=new WeakMap,Cv=new WeakMap,gL=new WeakMap;function EL(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function fL(e){return e.__v_skip||!Object.isExtensible(e)?0:EL(Lw(e))}function nr(e){return sa(e)?e:Ug(e,!1,Tv,dL,hv)}function SL(e){return Ug(e,!1,oL,pL,Rv)}function Nl(e){return Ug(e,!0,aL,mL,Cv)}function Ug(e,t,n,r,a){if(!pt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=a.get(e);if(o)return o;const l=fL(e);if(l===0)return e;const c=new Proxy(e,l===2?r:n);return a.set(e,c),c}function Tr(e){return sa(e)?Tr(e.__v_raw):!!(e&&e.__v_isReactive)}function sa(e){return!!(e&&e.__v_isReadonly)}function _l(e){return!!(e&&e.__v_isShallow)}function vv(e){return Tr(e)||sa(e)}function nt(e){const t=e&&e.__v_raw;return t?nt(t):e}function Ol(e){return cl(e,"__v_skip",!0),e}const co=e=>pt(e)?nr(e):e,Bg=e=>pt(e)?Nl(e):e;function Gg(e){zr&&Gn&&(e=nt(e),fv(e.dep||(e.dep=wg())))}function Yg(e,t){e=nt(e);const n=e.dep;n&&Qm(n)}function ct(e){return!!(e&&e.__v_isRef===!0)}function xe(e){return Nv(e,!1)}function qg(e){return Nv(e,!0)}function Nv(e,t){return ct(e)?e:new bL(e,t)}class bL{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:nt(t),this._value=n?t:co(t)}get value(){return Gg(this),this._value}set value(t){const n=this.__v_isShallow||_l(t)||sa(t);t=n?t:nt(t),lo(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:co(t),Yg(this))}}function Ie(e){return ct(e)?e.value:e}const TL={get:(e,t,n)=>Ie(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const a=e[t];return ct(a)&&!ct(n)?(a.value=n,!0):Reflect.set(e,t,n,r)}};function Ov(e){return Tr(e)?e:new Proxy(e,TL)}class hL{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Gg(this),()=>Yg(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function RL(e){return new hL(e)}function CL(e){const t=ke(e)?new Array(e.length):{};for(const n in e)t[n]=yv(e,n);return t}class vL{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return zw(nt(this._object),this._key)}}class NL{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Av(e,t,n){return ct(e)?e:$e(e)?new NL(e):pt(e)&&arguments.length>1?yv(e,t,n):xe(e)}function yv(e,t,n){const r=e[t];return ct(r)?r:new vL(e,t,n)}class OL{constructor(t,n,r,a){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new Lg(t,()=>{this._dirty||(this._dirty=!0,Yg(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!a,this.__v_isReadonly=r}get value(){const t=nt(this);return Gg(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function AL(e,t,n=!1){let r,a;const o=$e(e);return o?(r=e,a=Hn):(r=e.get,a=e.set),new OL(r,a,o||!a,n)}function Kr(e,t,n,r){let a;try{a=r?e(...r):e()}catch(o){Al(o,t,n)}return a}function xn(e,t,n,r){if($e(e)){const o=Kr(e,t,n,r);return o&&av(o)&&o.catch(l=>{Al(l,t,n)}),o}const a=[];for(let o=0;o>>1;_o(zt[r])jn&&zt.splice(t,1)}function xL(e){ke(e)?ra.push(...e):(!Sr||!Sr.includes(e,e.allowRecurse?pi+1:pi))&&ra.push(e),Dv()}function $S(e,t=uo?jn+1:0){for(;t_o(n)-_o(r)),pi=0;pie.id==null?1/0:e.id,ML=(e,t)=>{const n=_o(e)-_o(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Mv(e){Xm=!1,uo=!0,zt.sort(ML);const t=Hn;try{for(jn=0;jnAt(f)?f.trim():f)),g&&(a=n.map($m))}let c,u=r[c=Fu(t)]||r[c=Fu(oa(t))];!u&&o&&(u=r[c=Fu(da(t))]),u&&xn(u,e,6,a);const d=r[c+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,xn(d,e,6,a)}}function wv(e,t,n=!1){const r=t.emitsCache,a=r.get(e);if(a!==void 0)return a;const o=e.emits;let l={},c=!1;if(!$e(e)){const u=d=>{const p=wv(d,t,!0);p&&(c=!0,Ot(l,p))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!o&&!c?(pt(e)&&r.set(e,null),null):(ke(o)?o.forEach(u=>l[u]=null):Ot(l,o),pt(e)&&r.set(e,l),l)}function yl(e,t){return!e||!hl(t)?!1:(t=t.slice(2).replace(/Once$/,""),rt(e,t[0].toLowerCase()+t.slice(1))||rt(e,da(t))||rt(e,t))}let Yt=null,Lv=null;function dl(e){const t=Yt;return Yt=e,Lv=e&&e.type.__scopeId||null,t}function jt(e,t=Yt,n){if(!t||e._n)return e;const r=(...a)=>{r._d&&rb(-1);const o=dl(t);let l;try{l=e(...a)}finally{dl(o),r._d&&rb(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function Uu(e){const{type:t,vnode:n,proxy:r,withProxy:a,props:o,propsOptions:[l],slots:c,attrs:u,emit:d,render:p,renderCache:g,data:E,setupState:f,ctx:b,inheritAttrs:h}=e;let C,O;const F=dl(e);try{if(n.shapeFlag&4){const x=a||r;C=Jn(p.call(x,x,g,o,f,E,b)),O=u}else{const x=t;C=Jn(x.length>1?x(o,{attrs:u,slots:c,emit:d}):x(o,null)),O=t.props?u:LL(u)}}catch(x){ro.length=0,Al(x,e,1),C=Qe(Cr)}let U=C;if(O&&h!==!1){const x=Object.keys(O),{shapeFlag:B}=U;x.length&&B&7&&(l&&x.some(Ag)&&(O=PL(O,l)),U=Xr(U,O))}return n.dirs&&(U=Xr(U),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition&&(U.transition=n.transition),C=U,dl(F),C}const LL=e=>{let t;for(const n in e)(n==="class"||n==="style"||hl(n))&&((t||(t={}))[n]=e[n]);return t},PL=(e,t)=>{const n={};for(const r in e)(!Ag(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function kL(e,t,n){const{props:r,children:a,component:o}=e,{props:l,children:c,patchFlag:u}=t,d=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return r?WS(r,l,d):!!l;if(u&8){const p=t.dynamicProps;for(let g=0;ge.__isSuspense;function BL(e,t){t&&t.pendingBranch?ke(e)?t.effects.push(...e):t.effects.push(e):xL(e)}function wn(e,t){return $g(e,null,t)}const Ys={};function qt(e,t,n){return $g(e,t,n)}function $g(e,t,{immediate:n,deep:r,flush:a,onTrack:o,onTrigger:l}=gt){var c;const u=Mg()===((c=kt)==null?void 0:c.scope)?kt:null;let d,p=!1,g=!1;if(ct(e)?(d=()=>e.value,p=_l(e)):Tr(e)?(d=()=>e,r=!0):ke(e)?(g=!0,p=e.some(x=>Tr(x)||_l(x)),d=()=>e.map(x=>{if(ct(x))return x.value;if(Tr(x))return Ei(x);if($e(x))return Kr(x,u,2)})):$e(e)?t?d=()=>Kr(e,u,2):d=()=>{if(!(u&&u.isUnmounted))return E&&E(),xn(e,u,3,[f])}:d=Hn,t&&r){const x=d;d=()=>Ei(x())}let E,f=x=>{E=F.onStop=()=>{Kr(x,u,4)}},b;if(go)if(f=Hn,t?n&&xn(t,u,3,[d(),g?[]:void 0,f]):d(),a==="sync"){const x=LP();b=x.__watcherHandles||(x.__watcherHandles=[])}else return Hn;let h=g?new Array(e.length).fill(Ys):Ys;const C=()=>{if(F.active)if(t){const x=F.run();(r||p||(g?x.some((B,W)=>lo(B,h[W])):lo(x,h)))&&(E&&E(),xn(t,u,3,[x,h===Ys?void 0:g&&h[0]===Ys?[]:h,f]),h=x)}else F.run()};C.allowRecurse=!!t;let O;a==="sync"?O=C:a==="post"?O=()=>an(C,u&&u.suspense):(C.pre=!0,u&&(C.id=u.uid),O=()=>Vg(C));const F=new Lg(d,O);t?n?C():h=F.run():a==="post"?an(F.run.bind(F),u&&u.suspense):F.run();const U=()=>{F.stop(),u&&u.scope&&yg(u.scope.effects,F)};return b&&b.push(U),U}function GL(e,t,n){const r=this.proxy,a=At(e)?e.includes(".")?Pv(r,e):()=>r[e]:e.bind(r,r);let o;$e(t)?o=t:(o=t.handler,n=t);const l=kt;ca(this);const c=$g(a,o.bind(r),n);return l?ca(l):Ti(),c}function Pv(e,t){const n=t.split(".");return()=>{let r=e;for(let a=0;a{Ei(n,t)});else if(sv(e))for(const n in e)Ei(e[n],t);return e}function zS(e,t){const n=Yt;if(n===null)return e;const r=wl(n)||n.proxy,a=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),Gv(()=>{e.isUnmounting=!0}),e}const yn=[Function,Array],qL={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:yn,onEnter:yn,onAfterEnter:yn,onEnterCancelled:yn,onBeforeLeave:yn,onLeave:yn,onAfterLeave:yn,onLeaveCancelled:yn,onBeforeAppear:yn,onAppear:yn,onAfterAppear:yn,onAppearCancelled:yn};function HL(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Zm(e,t,n,r){const{appear:a,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:d,onEnterCancelled:p,onBeforeLeave:g,onLeave:E,onAfterLeave:f,onLeaveCancelled:b,onBeforeAppear:h,onAppear:C,onAfterAppear:O,onAppearCancelled:F}=t,U=String(e.key),x=HL(n,e),B=(M,k)=>{M&&xn(M,r,9,k)},W=(M,k)=>{const Y=k[1];B(M,k),ke(M)?M.every(H=>H.length<=1)&&Y():M.length<=1&&Y()},Z={mode:o,persisted:l,beforeEnter(M){let k=c;if(!n.isMounted)if(a)k=h||c;else return;M._leaveCb&&M._leaveCb(!0);const Y=x[U];Y&&Zi(e,Y)&&Y.el._leaveCb&&Y.el._leaveCb(),B(k,[M])},enter(M){let k=u,Y=d,H=p;if(!n.isMounted)if(a)k=C||u,Y=O||d,H=F||p;else return;let q=!1;const ce=M._enterCb=Re=>{q||(q=!0,Re?B(H,[M]):B(Y,[M]),Z.delayedLeave&&Z.delayedLeave(),M._enterCb=void 0)};k?W(k,[M,ce]):ce()},leave(M,k){const Y=String(e.key);if(M._enterCb&&M._enterCb(!0),n.isUnmounting)return k();B(g,[M]);let H=!1;const q=M._leaveCb=ce=>{H||(H=!0,k(),ce?B(b,[M]):B(f,[M]),M._leaveCb=void 0,x[Y]===e&&delete x[Y])};x[Y]=e,E?W(E,[M,q]):q()},clone(M){return Zm(M,t,n,r)}};return Z}function Jm(e,t){e.shapeFlag&6&&e.component?Jm(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function kv(e,t=!1,n){let r=[],a=0;for(let o=0;o1)for(let o=0;oOt({name:e.name},t,{setup:e}))():e}const eo=e=>!!e.type.__asyncLoader,Fv=e=>e.type.__isKeepAlive;function VL(e,t){Uv(e,"a",t)}function $L(e,t){Uv(e,"da",t)}function Uv(e,t,n=kt){const r=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Il(t,r,n),n){let a=n.parent;for(;a&&a.parent;)Fv(a.parent.vnode)&&WL(r,t,n,a),a=a.parent}}function WL(e,t,n,r){const a=Il(t,e,r,!0);Sn(()=>{yg(r[t],a)},n)}function Il(e,t,n=kt,r=!1){if(n){const a=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;pa(),ca(n);const c=xn(t,n,e,l);return Ti(),ma(),c});return r?a.unshift(o):a.push(o),o}}const vr=e=>(t,n=kt)=>(!go||e==="sp")&&Il(e,(...r)=>t(...r),n),zL=vr("bm"),Ft=vr("m"),KL=vr("bu"),Bv=vr("u"),Gv=vr("bum"),Sn=vr("um"),QL=vr("sp"),XL=vr("rtg"),ZL=vr("rtc");function JL(e,t=kt){Il("ec",e,t)}const jL=Symbol.for("v-ndc");function la(e,t,n,r){let a;const o=n&&n[r];if(ke(e)||At(e)){a=new Array(e.length);for(let l=0,c=e.length;lt(l,c,void 0,o&&o[c]));else{const l=Object.keys(e);a=new Array(l.length);for(let c=0,u=l.length;cml(t)?!(t.type===Cr||t.type===Nt&&!qv(t.children)):!0)?e:null}const jm=e=>e?jv(e)?wl(e)||e.proxy:jm(e.parent):null,to=Ot(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>jm(e.parent),$root:e=>jm(e.root),$emit:e=>e.emit,$options:e=>Wg(e),$forceUpdate:e=>e.f||(e.f=()=>Vg(e.update)),$nextTick:e=>e.n||(e.n=Ro.bind(e.proxy)),$watch:e=>GL.bind(e)}),Bu=(e,t)=>e!==gt&&!e.__isScriptSetup&&rt(e,t),eP={get({_:e},t){const{ctx:n,setupState:r,data:a,props:o,accessCache:l,type:c,appContext:u}=e;let d;if(t[0]!=="$"){const f=l[t];if(f!==void 0)switch(f){case 1:return r[t];case 2:return a[t];case 4:return n[t];case 3:return o[t]}else{if(Bu(r,t))return l[t]=1,r[t];if(a!==gt&&rt(a,t))return l[t]=2,a[t];if((d=e.propsOptions[0])&&rt(d,t))return l[t]=3,o[t];if(n!==gt&&rt(n,t))return l[t]=4,n[t];eg&&(l[t]=0)}}const p=to[t];let g,E;if(p)return t==="$attrs"&&sn(e,"get",t),p(e);if((g=c.__cssModules)&&(g=g[t]))return g;if(n!==gt&&rt(n,t))return l[t]=4,n[t];if(E=u.config.globalProperties,rt(E,t))return E[t]},set({_:e},t,n){const{data:r,setupState:a,ctx:o}=e;return Bu(a,t)?(a[t]=n,!0):r!==gt&&rt(r,t)?(r[t]=n,!0):rt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:a,propsOptions:o}},l){let c;return!!n[l]||e!==gt&&rt(e,l)||Bu(t,l)||(c=o[0])&&rt(c,l)||rt(r,l)||rt(to,l)||rt(a.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:rt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function KS(e){return ke(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let eg=!0;function tP(e){const t=Wg(e),n=e.proxy,r=e.ctx;eg=!1,t.beforeCreate&&QS(t.beforeCreate,e,"bc");const{data:a,computed:o,methods:l,watch:c,provide:u,inject:d,created:p,beforeMount:g,mounted:E,beforeUpdate:f,updated:b,activated:h,deactivated:C,beforeDestroy:O,beforeUnmount:F,destroyed:U,unmounted:x,render:B,renderTracked:W,renderTriggered:Z,errorCaptured:M,serverPrefetch:k,expose:Y,inheritAttrs:H,components:q,directives:ce,filters:Re}=t;if(d&&nP(d,r,null),l)for(const L in l){const $=l[L];$e($)&&(r[L]=$.bind(n))}if(a){const L=a.call(n,n);pt(L)&&(e.data=nr(L))}if(eg=!0,o)for(const L in o){const $=o[L],ue=$e($)?$.bind(n,n):$e($.get)?$.get.bind(n,n):Hn,ge=!$e($)&&$e($.set)?$.set.bind(n):Hn,Se=et({get:ue,set:ge});Object.defineProperty(r,L,{enumerable:!0,configurable:!0,get:()=>Se.value,set:De=>Se.value=De})}if(c)for(const L in c)Hv(c[L],r,n,L);if(u){const L=$e(u)?u.call(n):u;Reflect.ownKeys(L).forEach($=>{Vn($,L[$])})}p&&QS(p,e,"c");function Ee(L,$){ke($)?$.forEach(ue=>L(ue.bind(n))):$&&L($.bind(n))}if(Ee(zL,g),Ee(Ft,E),Ee(KL,f),Ee(Bv,b),Ee(VL,h),Ee($L,C),Ee(JL,M),Ee(ZL,W),Ee(XL,Z),Ee(Gv,F),Ee(Sn,x),Ee(QL,k),ke(Y))if(Y.length){const L=e.exposed||(e.exposed={});Y.forEach($=>{Object.defineProperty(L,$,{get:()=>n[$],set:ue=>n[$]=ue})})}else e.exposed||(e.exposed={});B&&e.render===Hn&&(e.render=B),H!=null&&(e.inheritAttrs=H),q&&(e.components=q),ce&&(e.directives=ce)}function nP(e,t,n=Hn){ke(e)&&(e=tg(e));for(const r in e){const a=e[r];let o;pt(a)?"default"in a?o=Kt(a.from||r,a.default,!0):o=Kt(a.from||r):o=Kt(a),ct(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[r]=o}}function QS(e,t,n){xn(ke(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Hv(e,t,n,r){const a=r.includes(".")?Pv(n,r):()=>n[r];if(At(e)){const o=t[e];$e(o)&&qt(a,o)}else if($e(e))qt(a,e.bind(n));else if(pt(e))if(ke(e))e.forEach(o=>Hv(o,t,n,r));else{const o=$e(e.handler)?e.handler.bind(n):t[e.handler];$e(o)&&qt(a,o,e)}}function Wg(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:a,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,c=o.get(t);let u;return c?u=c:!a.length&&!n&&!r?u=t:(u={},a.length&&a.forEach(d=>pl(u,d,l,!0)),pl(u,t,l)),pt(t)&&o.set(t,u),u}function pl(e,t,n,r=!1){const{mixins:a,extends:o}=t;o&&pl(e,o,n,!0),a&&a.forEach(l=>pl(e,l,n,!0));for(const l in t)if(!(r&&l==="expose")){const c=rP[l]||n&&n[l];e[l]=c?c(e[l],t[l]):t[l]}return e}const rP={data:XS,props:ZS,emits:ZS,methods:Xa,computed:Xa,beforeCreate:Jt,created:Jt,beforeMount:Jt,mounted:Jt,beforeUpdate:Jt,updated:Jt,beforeDestroy:Jt,beforeUnmount:Jt,destroyed:Jt,unmounted:Jt,activated:Jt,deactivated:Jt,errorCaptured:Jt,serverPrefetch:Jt,components:Xa,directives:Xa,watch:aP,provide:XS,inject:iP};function XS(e,t){return t?e?function(){return Ot($e(e)?e.call(this,this):e,$e(t)?t.call(this,this):t)}:t:e}function iP(e,t){return Xa(tg(e),tg(t))}function tg(e){if(ke(e)){const t={};for(let n=0;n1)return n&&$e(t)?t.call(r&&r.proxy):t}}function lP(){return!!(kt||Yt||po)}function cP(e,t,n,r=!1){const a={},o={};cl(o,xl,1),e.propsDefaults=Object.create(null),$v(e,t,a,o);for(const l in e.propsOptions[0])l in a||(a[l]=void 0);n?e.props=r?a:SL(a):e.type.props?e.props=a:e.props=o,e.attrs=o}function uP(e,t,n,r){const{props:a,attrs:o,vnode:{patchFlag:l}}=e,c=nt(a),[u]=e.propsOptions;let d=!1;if((r||l>0)&&!(l&16)){if(l&8){const p=e.vnode.dynamicProps;for(let g=0;g{u=!0;const[E,f]=Wv(g,t,!0);Ot(l,E),f&&c.push(...f)};!n&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!o&&!u)return pt(e)&&r.set(e,ta),ta;if(ke(o))for(let p=0;p-1,f[1]=h<0||b-1||rt(f,"default"))&&c.push(g)}}}const d=[l,c];return pt(e)&&r.set(e,d),d}function JS(e){return e[0]!=="$"}function jS(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function eb(e,t){return jS(e)===jS(t)}function tb(e,t){return ke(t)?t.findIndex(n=>eb(n,e)):$e(t)&&eb(t,e)?0:-1}const zv=e=>e[0]==="_"||e==="$stable",zg=e=>ke(e)?e.map(Jn):[Jn(e)],_P=(e,t,n)=>{if(t._n)return t;const r=jt((...a)=>zg(t(...a)),n);return r._c=!1,r},Kv=(e,t,n)=>{const r=e._ctx;for(const a in e){if(zv(a))continue;const o=e[a];if($e(o))t[a]=_P(a,o,r);else if(o!=null){const l=zg(o);t[a]=()=>l}}},Qv=(e,t)=>{const n=zg(t);e.slots.default=()=>n},dP=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=nt(t),cl(t,"_",n)):Kv(t,e.slots={})}else e.slots={},t&&Qv(e,t);cl(e.slots,xl,1)},pP=(e,t,n)=>{const{vnode:r,slots:a}=e;let o=!0,l=gt;if(r.shapeFlag&32){const c=t._;c?n&&c===1?o=!1:(Ot(a,t),!n&&c===1&&delete a._):(o=!t.$stable,Kv(t,a)),l=t}else t&&(Qv(e,t),l={default:1});if(o)for(const c in a)!zv(c)&&!(c in l)&&delete a[c]};function rg(e,t,n,r,a=!1){if(ke(e)){e.forEach((E,f)=>rg(E,t&&(ke(t)?t[f]:t),n,r,a));return}if(eo(r)&&!a)return;const o=r.shapeFlag&4?wl(r.component)||r.component.proxy:r.el,l=a?null:o,{i:c,r:u}=e,d=t&&t.r,p=c.refs===gt?c.refs={}:c.refs,g=c.setupState;if(d!=null&&d!==u&&(At(d)?(p[d]=null,rt(g,d)&&(g[d]=null)):ct(d)&&(d.value=null)),$e(u))Kr(u,c,12,[l,p]);else{const E=At(u),f=ct(u);if(E||f){const b=()=>{if(e.f){const h=E?rt(g,u)?g[u]:p[u]:u.value;a?ke(h)&&yg(h,o):ke(h)?h.includes(o)||h.push(o):E?(p[u]=[o],rt(g,u)&&(g[u]=p[u])):(u.value=[o],e.k&&(p[e.k]=u.value))}else E?(p[u]=l,rt(g,u)&&(g[u]=l)):f&&(u.value=l,e.k&&(p[e.k]=l))};l?(b.id=-1,an(b,n)):b()}}}const an=BL;function mP(e){return gP(e)}function gP(e,t){const n=Wm();n.__VUE__=!0;const{insert:r,remove:a,patchProp:o,createElement:l,createText:c,createComment:u,setText:d,setElementText:p,parentNode:g,nextSibling:E,setScopeId:f=Hn,insertStaticContent:b}=e,h=(v,y,G,j=null,X=null,ie=null,me=!1,z=null,le=!!y.dynamicChildren)=>{if(v===y)return;v&&!Zi(v,y)&&(j=de(v),De(v,X,ie,!0),v=null),y.patchFlag===-2&&(le=!1,y.dynamicChildren=null);const{type:K,ref:ae,shapeFlag:se}=y;switch(K){case Dl:C(v,y,G,j);break;case Cr:O(v,y,G,j);break;case Gu:v==null&&F(y,G,j,me);break;case Nt:q(v,y,G,j,X,ie,me,z,le);break;default:se&1?B(v,y,G,j,X,ie,me,z,le):se&6?ce(v,y,G,j,X,ie,me,z,le):(se&64||se&128)&&K.process(v,y,G,j,X,ie,me,z,le,Ne)}ae!=null&&X&&rg(ae,v&&v.ref,ie,y||v,!y)},C=(v,y,G,j)=>{if(v==null)r(y.el=c(y.children),G,j);else{const X=y.el=v.el;y.children!==v.children&&d(X,y.children)}},O=(v,y,G,j)=>{v==null?r(y.el=u(y.children||""),G,j):y.el=v.el},F=(v,y,G,j)=>{[v.el,v.anchor]=b(v.children,y,G,j,v.el,v.anchor)},U=({el:v,anchor:y},G,j)=>{let X;for(;v&&v!==y;)X=E(v),r(v,G,j),v=X;r(y,G,j)},x=({el:v,anchor:y})=>{let G;for(;v&&v!==y;)G=E(v),a(v),v=G;a(y)},B=(v,y,G,j,X,ie,me,z,le)=>{me=me||y.type==="svg",v==null?W(y,G,j,X,ie,me,z,le):k(v,y,X,ie,me,z,le)},W=(v,y,G,j,X,ie,me,z)=>{let le,K;const{type:ae,props:se,shapeFlag:he,transition:Ae,dirs:Ge}=v;if(le=v.el=l(v.type,ie,se&&se.is,se),he&8?p(le,v.children):he&16&&M(v.children,le,null,j,X,ie&&ae!=="foreignObject",me,z),Ge&&si(v,null,j,"created"),Z(le,v,v.scopeId,me,j),se){for(const oe in se)oe!=="value"&&!js(oe)&&o(le,oe,null,se[oe],ie,v.children,j,X,pe);"value"in se&&o(le,"value",null,se.value),(K=se.onVnodeBeforeMount)&&Kn(K,j,v)}Ge&&si(v,null,j,"beforeMount");const ne=(!X||X&&!X.pendingBranch)&&Ae&&!Ae.persisted;ne&&Ae.beforeEnter(le),r(le,y,G),((K=se&&se.onVnodeMounted)||ne||Ge)&&an(()=>{K&&Kn(K,j,v),ne&&Ae.enter(le),Ge&&si(v,null,j,"mounted")},X)},Z=(v,y,G,j,X)=>{if(G&&f(v,G),j)for(let ie=0;ie{for(let K=le;K{const z=y.el=v.el;let{patchFlag:le,dynamicChildren:K,dirs:ae}=y;le|=v.patchFlag&16;const se=v.props||gt,he=y.props||gt;let Ae;G&&li(G,!1),(Ae=he.onVnodeBeforeUpdate)&&Kn(Ae,G,y,v),ae&&si(y,v,G,"beforeUpdate"),G&&li(G,!0);const Ge=X&&y.type!=="foreignObject";if(K?Y(v.dynamicChildren,K,z,G,j,Ge,ie):me||$(v,y,z,null,G,j,Ge,ie,!1),le>0){if(le&16)H(z,y,se,he,G,j,X);else if(le&2&&se.class!==he.class&&o(z,"class",null,he.class,X),le&4&&o(z,"style",se.style,he.style,X),le&8){const ne=y.dynamicProps;for(let oe=0;oe{Ae&&Kn(Ae,G,y,v),ae&&si(y,v,G,"updated")},j)},Y=(v,y,G,j,X,ie,me)=>{for(let z=0;z{if(G!==j){if(G!==gt)for(const z in G)!js(z)&&!(z in j)&&o(v,z,G[z],null,me,y.children,X,ie,pe);for(const z in j){if(js(z))continue;const le=j[z],K=G[z];le!==K&&z!=="value"&&o(v,z,K,le,me,y.children,X,ie,pe)}"value"in j&&o(v,"value",G.value,j.value)}},q=(v,y,G,j,X,ie,me,z,le)=>{const K=y.el=v?v.el:c(""),ae=y.anchor=v?v.anchor:c("");let{patchFlag:se,dynamicChildren:he,slotScopeIds:Ae}=y;Ae&&(z=z?z.concat(Ae):Ae),v==null?(r(K,G,j),r(ae,G,j),M(y.children,G,ae,X,ie,me,z,le)):se>0&&se&64&&he&&v.dynamicChildren?(Y(v.dynamicChildren,he,G,X,ie,me,z),(y.key!=null||X&&y===X.subTree)&&Kg(v,y,!0)):$(v,y,G,ae,X,ie,me,z,le)},ce=(v,y,G,j,X,ie,me,z,le)=>{y.slotScopeIds=z,v==null?y.shapeFlag&512?X.ctx.activate(y,G,j,me,le):Re(y,G,j,X,ie,me,le):Te(v,y,le)},Re=(v,y,G,j,X,ie,me)=>{const z=v.component=AP(v,j,X);if(Fv(v)&&(z.ctx.renderer=Ne),yP(z),z.asyncDep){if(X&&X.registerDep(z,Ee),!v.el){const le=z.subTree=Qe(Cr);O(null,le,y,G)}return}Ee(z,v,y,G,X,ie,me)},Te=(v,y,G)=>{const j=y.component=v.component;if(kL(v,y,G))if(j.asyncDep&&!j.asyncResolved){L(j,y,G);return}else j.next=y,DL(j.update),j.update();else y.el=v.el,j.vnode=y},Ee=(v,y,G,j,X,ie,me)=>{const z=()=>{if(v.isMounted){let{next:ae,bu:se,u:he,parent:Ae,vnode:Ge}=v,ne=ae,oe;li(v,!1),ae?(ae.el=Ge.el,L(v,ae,me)):ae=Ge,se&&el(se),(oe=ae.props&&ae.props.onVnodeBeforeUpdate)&&Kn(oe,Ae,ae,Ge),li(v,!0);const Ce=Uu(v),Fe=v.subTree;v.subTree=Ce,h(Fe,Ce,g(Fe.el),de(Fe),v,X,ie),ae.el=Ce.el,ne===null&&FL(v,Ce.el),he&&an(he,X),(oe=ae.props&&ae.props.onVnodeUpdated)&&an(()=>Kn(oe,Ae,ae,Ge),X)}else{let ae;const{el:se,props:he}=y,{bm:Ae,m:Ge,parent:ne}=v,oe=eo(y);if(li(v,!1),Ae&&el(Ae),!oe&&(ae=he&&he.onVnodeBeforeMount)&&Kn(ae,ne,y),li(v,!0),se&&Ue){const Ce=()=>{v.subTree=Uu(v),Ue(se,v.subTree,v,X,null)};oe?y.type.__asyncLoader().then(()=>!v.isUnmounted&&Ce()):Ce()}else{const Ce=v.subTree=Uu(v);h(null,Ce,G,j,v,X,ie),y.el=Ce.el}if(Ge&&an(Ge,X),!oe&&(ae=he&&he.onVnodeMounted)){const Ce=y;an(()=>Kn(ae,ne,Ce),X)}(y.shapeFlag&256||ne&&eo(ne.vnode)&&ne.vnode.shapeFlag&256)&&v.a&&an(v.a,X),v.isMounted=!0,y=G=j=null}},le=v.effect=new Lg(z,()=>Vg(K),v.scope),K=v.update=()=>le.run();K.id=v.uid,li(v,!0),K()},L=(v,y,G)=>{y.component=v;const j=v.vnode.props;v.vnode=y,v.next=null,uP(v,y.props,j,G),pP(v,y.children,G),pa(),$S(),ma()},$=(v,y,G,j,X,ie,me,z,le=!1)=>{const K=v&&v.children,ae=v?v.shapeFlag:0,se=y.children,{patchFlag:he,shapeFlag:Ae}=y;if(he>0){if(he&128){ge(K,se,G,j,X,ie,me,z,le);return}else if(he&256){ue(K,se,G,j,X,ie,me,z,le);return}}Ae&8?(ae&16&&pe(K,X,ie),se!==K&&p(G,se)):ae&16?Ae&16?ge(K,se,G,j,X,ie,me,z,le):pe(K,X,ie,!0):(ae&8&&p(G,""),Ae&16&&M(se,G,j,X,ie,me,z,le))},ue=(v,y,G,j,X,ie,me,z,le)=>{v=v||ta,y=y||ta;const K=v.length,ae=y.length,se=Math.min(K,ae);let he;for(he=0;heae?pe(v,X,ie,!0,!1,se):M(y,G,j,X,ie,me,z,le,se)},ge=(v,y,G,j,X,ie,me,z,le)=>{let K=0;const ae=y.length;let se=v.length-1,he=ae-1;for(;K<=se&&K<=he;){const Ae=v[K],Ge=y[K]=le?qr(y[K]):Jn(y[K]);if(Zi(Ae,Ge))h(Ae,Ge,G,null,X,ie,me,z,le);else break;K++}for(;K<=se&&K<=he;){const Ae=v[se],Ge=y[he]=le?qr(y[he]):Jn(y[he]);if(Zi(Ae,Ge))h(Ae,Ge,G,null,X,ie,me,z,le);else break;se--,he--}if(K>se){if(K<=he){const Ae=he+1,Ge=Aehe)for(;K<=se;)De(v[K],X,ie,!0),K++;else{const Ae=K,Ge=K,ne=new Map;for(K=Ge;K<=he;K++){const bt=y[K]=le?qr(y[K]):Jn(y[K]);bt.key!=null&&ne.set(bt.key,K)}let oe,Ce=0;const Fe=he-Ge+1;let at=!1,yt=0;const Ze=new Array(Fe);for(K=0;K=Fe){De(bt,X,ie,!0);continue}let wt;if(bt.key!=null)wt=ne.get(bt.key);else for(oe=Ge;oe<=he;oe++)if(Ze[oe-Ge]===0&&Zi(bt,y[oe])){wt=oe;break}wt===void 0?De(bt,X,ie,!0):(Ze[wt-Ge]=K+1,wt>=yt?yt=wt:at=!0,h(bt,y[wt],G,null,X,ie,me,z,le),Ce++)}const ln=at?EP(Ze):ta;for(oe=ln.length-1,K=Fe-1;K>=0;K--){const bt=Ge+K,wt=y[bt],Nr=bt+1{const{el:ie,type:me,transition:z,children:le,shapeFlag:K}=v;if(K&6){Se(v.component.subTree,y,G,j);return}if(K&128){v.suspense.move(y,G,j);return}if(K&64){me.move(v,y,G,Ne);return}if(me===Nt){r(ie,y,G);for(let se=0;sez.enter(ie),X);else{const{leave:se,delayLeave:he,afterLeave:Ae}=z,Ge=()=>r(ie,y,G),ne=()=>{se(ie,()=>{Ge(),Ae&&Ae()})};he?he(ie,Ge,ne):ne()}else r(ie,y,G)},De=(v,y,G,j=!1,X=!1)=>{const{type:ie,props:me,ref:z,children:le,dynamicChildren:K,shapeFlag:ae,patchFlag:se,dirs:he}=v;if(z!=null&&rg(z,null,G,v,!0),ae&256){y.ctx.deactivate(v);return}const Ae=ae&1&&he,Ge=!eo(v);let ne;if(Ge&&(ne=me&&me.onVnodeBeforeUnmount)&&Kn(ne,y,v),ae&6)w(v.component,G,j);else{if(ae&128){v.suspense.unmount(G,j);return}Ae&&si(v,null,y,"beforeUnmount"),ae&64?v.type.remove(v,y,G,X,Ne,j):K&&(ie!==Nt||se>0&&se&64)?pe(K,y,G,!1,!0):(ie===Nt&&se&384||!X&&ae&16)&&pe(le,y,G),j&&We(v)}(Ge&&(ne=me&&me.onVnodeUnmounted)||Ae)&&an(()=>{ne&&Kn(ne,y,v),Ae&&si(v,null,y,"unmounted")},G)},We=v=>{const{type:y,el:G,anchor:j,transition:X}=v;if(y===Nt){Xe(G,j);return}if(y===Gu){x(v);return}const ie=()=>{a(G),X&&!X.persisted&&X.afterLeave&&X.afterLeave()};if(v.shapeFlag&1&&X&&!X.persisted){const{leave:me,delayLeave:z}=X,le=()=>me(G,ie);z?z(v.el,ie,le):le()}else ie()},Xe=(v,y)=>{let G;for(;v!==y;)G=E(v),a(v),v=G;a(y)},w=(v,y,G)=>{const{bum:j,scope:X,update:ie,subTree:me,um:z}=v;j&&el(j),X.stop(),ie&&(ie.active=!1,De(me,v,y,G)),z&&an(z,y),an(()=>{v.isUnmounted=!0},y),y&&y.pendingBranch&&!y.isUnmounted&&v.asyncDep&&!v.asyncResolved&&v.suspenseId===y.pendingId&&(y.deps--,y.deps===0&&y.resolve())},pe=(v,y,G,j=!1,X=!1,ie=0)=>{for(let me=ie;mev.shapeFlag&6?de(v.component.subTree):v.shapeFlag&128?v.suspense.next():E(v.anchor||v.el),fe=(v,y,G)=>{v==null?y._vnode&&De(y._vnode,null,null,!0):h(y._vnode||null,v,y,null,null,null,G),$S(),xv(),y._vnode=v},Ne={p:h,um:De,m:Se,r:We,mt:Re,mc:M,pc:$,pbc:Y,n:de,o:e};let Be,Ue;return t&&([Be,Ue]=t(Ne)),{render:fe,hydrate:Be,createApp:sP(fe,Be)}}function li({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Kg(e,t,n=!1){const r=e.children,a=t.children;if(ke(r)&&ke(a))for(let o=0;o>1,e[n[c]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,l=n[o-1];o-- >0;)n[o]=l,l=t[l];return n}const fP=e=>e.__isTeleport,no=e=>e&&(e.disabled||e.disabled===""),nb=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ig=(e,t)=>{const n=e&&e.to;return At(n)?t?t(n):null:n},SP={__isTeleport:!0,process(e,t,n,r,a,o,l,c,u,d){const{mc:p,pc:g,pbc:E,o:{insert:f,querySelector:b,createText:h,createComment:C}}=d,O=no(t.props);let{shapeFlag:F,children:U,dynamicChildren:x}=t;if(e==null){const B=t.el=h(""),W=t.anchor=h("");f(B,n,r),f(W,n,r);const Z=t.target=ig(t.props,b),M=t.targetAnchor=h("");Z&&(f(M,Z),l=l||nb(Z));const k=(Y,H)=>{F&16&&p(U,Y,H,a,o,l,c,u)};O?k(n,W):Z&&k(Z,M)}else{t.el=e.el;const B=t.anchor=e.anchor,W=t.target=e.target,Z=t.targetAnchor=e.targetAnchor,M=no(e.props),k=M?n:W,Y=M?B:Z;if(l=l||nb(W),x?(E(e.dynamicChildren,x,k,a,o,l,c),Kg(e,t,!0)):u||g(e,t,k,Y,a,o,l,c,!1),O)M||qs(t,n,B,d,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const H=t.target=ig(t.props,b);H&&qs(t,H,null,d,0)}else M&&qs(t,W,Z,d,1)}Xv(t)},remove(e,t,n,r,{um:a,o:{remove:o}},l){const{shapeFlag:c,children:u,anchor:d,targetAnchor:p,target:g,props:E}=e;if(g&&o(p),(l||!no(E))&&(o(d),c&16))for(let f=0;f0?qn||ta:null,hP(),mo>0&&qn&&qn.push(e),e}function Ye(e,t,n,r,a,o){return Zv(_e(e,t,n,r,a,o,!0))}function ga(e,t,n,r,a){return Zv(Qe(e,t,n,r,a,!0))}function ml(e){return e?e.__v_isVNode===!0:!1}function Zi(e,t){return e.type===t.type&&e.key===t.key}const xl="__vInternal",Jv=({key:e})=>e??null,tl=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?At(e)||ct(e)||$e(e)?{i:Yt,r:e,k:t,f:!!n}:e:null);function _e(e,t=null,n=null,r=0,a=null,o=e===Nt?0:1,l=!1,c=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jv(t),ref:t&&tl(t),scopeId:Lv,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:Yt};return c?(Qg(u,n),o&128&&e.normalize(u)):n&&(u.shapeFlag|=At(n)?8:16),mo>0&&!l&&qn&&(u.patchFlag>0||o&6)&&u.patchFlag!==32&&qn.push(u),u}const Qe=RP;function RP(e,t=null,n=null,r=0,a=null,o=!1){if((!e||e===jL)&&(e=Cr),ml(e)){const c=Xr(e,t,!0);return n&&Qg(c,n),mo>0&&!o&&qn&&(c.shapeFlag&6?qn[qn.indexOf(e)]=c:qn.push(c)),c.patchFlag|=-2,c}if(MP(e)&&(e=e.__vccOpts),t){t=CP(t);let{class:c,style:u}=t;c&&!At(c)&&(t.class=Yn(c)),pt(u)&&(vv(u)&&!ke(u)&&(u=Ot({},u)),t.style=xg(u))}const l=At(e)?1:UL(e)?128:fP(e)?64:pt(e)?4:$e(e)?2:0;return _e(e,t,n,r,a,l,o,!0)}function CP(e){return e?vv(e)||xl in e?Ot({},e):e:null}function Xr(e,t,n=!1){const{props:r,ref:a,patchFlag:o,children:l}=e,c=t?vP(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Jv(c),ref:t&&t.ref?n&&a?ke(a)?a.concat(tl(t)):[a,tl(t)]:tl(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Nt?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xr(e.ssContent),ssFallback:e.ssFallback&&Xr(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ci(e=" ",t=0){return Qe(Dl,null,e,t)}function In(e="",t=!1){return t?(Me(),ga(Cr,null,e)):Qe(Cr,null,e)}function Jn(e){return e==null||typeof e=="boolean"?Qe(Cr):ke(e)?Qe(Nt,null,e.slice()):typeof e=="object"?qr(e):Qe(Dl,null,String(e))}function qr(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xr(e)}function Qg(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ke(t))n=16;else if(typeof t=="object")if(r&65){const a=t.default;a&&(a._c&&(a._d=!1),Qg(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!(xl in t)?t._ctx=Yt:a===3&&Yt&&(Yt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else $e(t)?(t={default:t,_ctx:Yt},n=32):(t=String(t),r&64?(n=16,t=[Ci(t)]):n=8);e.children=t,e.shapeFlag|=n}function vP(...e){const t={};for(let n=0;nkt||Yt;let Xg,zi,ib="__VUE_INSTANCE_SETTERS__";(zi=Wm()[ib])||(zi=Wm()[ib]=[]),zi.push(e=>kt=e),Xg=e=>{zi.length>1?zi.forEach(t=>t(e)):zi[0](e)};const ca=e=>{Xg(e),e.scope.on()},Ti=()=>{kt&&kt.scope.off(),Xg(null)};function jv(e){return e.vnode.shapeFlag&4}let go=!1;function yP(e,t=!1){go=t;const{props:n,children:r}=e.vnode,a=jv(e);cP(e,n,a,t),dP(e,r);const o=a?IP(e,t):void 0;return go=!1,o}function IP(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ol(new Proxy(e.ctx,eP));const{setup:r}=n;if(r){const a=e.setupContext=r.length>1?xP(e):null;ca(e),pa();const o=Kr(r,e,0,[e.props,a]);if(ma(),Ti(),av(o)){if(o.then(Ti,Ti),t)return o.then(l=>{ab(e,l,t)}).catch(l=>{Al(l,e,0)});e.asyncDep=o}else ab(e,o,t)}else eN(e,t)}function ab(e,t,n){$e(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pt(t)&&(e.setupState=Ov(t)),eN(e,n)}let ob;function eN(e,t,n){const r=e.type;if(!e.render){if(!t&&ob&&!r.render){const a=r.template||Wg(e).template;if(a){const{isCustomElement:o,compilerOptions:l}=e.appContext.config,{delimiters:c,compilerOptions:u}=r,d=Ot(Ot({isCustomElement:o,delimiters:c},l),u);r.render=ob(a,d)}}e.render=r.render||Hn}ca(e),pa(),tP(e),ma(),Ti()}function DP(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return sn(e,"get","$attrs"),t[n]}}))}function xP(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return DP(e)},slots:e.slots,emit:e.emit,expose:t}}function wl(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Ov(Ol(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in to)return to[n](e)},has(t,n){return n in t||n in to}}))}function MP(e){return $e(e)&&"__vccOpts"in e}const et=(e,t)=>AL(e,t,go);function Wt(e,t,n){const r=arguments.length;return r===2?pt(t)&&!ke(t)?ml(t)?Qe(e,null,[t]):Qe(e,t):Qe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ml(n)&&(n=[n]),Qe(e,t,n))}const wP=Symbol.for("v-scx"),LP=()=>Kt(wP),PP="3.3.4",kP="http://www.w3.org/2000/svg",mi=typeof document<"u"?document:null,sb=mi&&mi.createElement("template"),FP={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const a=t?mi.createElementNS(kP,e):mi.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&a.setAttribute("multiple",r.multiple),a},createText:e=>mi.createTextNode(e),createComment:e=>mi.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>mi.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,a,o){const l=n?n.previousSibling:t.lastChild;if(a&&(a===o||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),!(a===o||!(a=a.nextSibling)););else{sb.innerHTML=r?``:e;const c=sb.content;if(r){const u=c.firstChild;for(;u.firstChild;)c.appendChild(u.firstChild);c.removeChild(u)}t.insertBefore(c,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function UP(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function BP(e,t,n){const r=e.style,a=At(n);if(n&&!a){if(t&&!At(t))for(const o in t)n[o]==null&&ag(r,o,"");for(const o in n)ag(r,o,n[o])}else{const o=r.display;a?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=o)}}const lb=/\s*!important$/;function ag(e,t,n){if(ke(n))n.forEach(r=>ag(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=GP(e,t);lb.test(n)?e.setProperty(da(r),n.replace(lb,""),"important"):e[r]=n}}const cb=["Webkit","Moz","ms"],Yu={};function GP(e,t){const n=Yu[t];if(n)return n;let r=oa(t);if(r!=="filter"&&r in e)return Yu[t]=r;r=lv(r);for(let a=0;aqu||(WP.then(()=>qu=0),qu=Date.now());function KP(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;xn(QP(r,n.value),t,5,[r])};return n.value=e,n.attached=zP(),n}function QP(e,t){if(ke(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>a=>!a._stopped&&r&&r(a))}else return t}const db=/^on[a-z]/,XP=(e,t,n,r,a=!1,o,l,c,u)=>{t==="class"?UP(e,r,a):t==="style"?BP(e,n,r):hl(t)?Ag(t)||VP(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ZP(e,t,r,a))?qP(e,t,r,o,l,c,u):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),YP(e,t,r,a))};function ZP(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&db.test(t)&&$e(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||db.test(t)&&At(n)?!1:t in e}const Ur="transition",$a="animation",tN={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},JP=Ot({},qL,tN),ci=(e,t=[])=>{ke(e)?e.forEach(n=>n(...t)):e&&e(...t)},pb=e=>e?ke(e)?e.some(t=>t.length>1):e.length>1:!1;function jP(e){const t={};for(const q in e)q in tN||(t[q]=e[q]);if(e.css===!1)return t;const{name:n="v",type:r,duration:a,enterFromClass:o=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:u=o,appearActiveClass:d=l,appearToClass:p=c,leaveFromClass:g=`${n}-leave-from`,leaveActiveClass:E=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=e,b=e0(a),h=b&&b[0],C=b&&b[1],{onBeforeEnter:O,onEnter:F,onEnterCancelled:U,onLeave:x,onLeaveCancelled:B,onBeforeAppear:W=O,onAppear:Z=F,onAppearCancelled:M=U}=t,k=(q,ce,Re)=>{Gr(q,ce?p:c),Gr(q,ce?d:l),Re&&Re()},Y=(q,ce)=>{q._isLeaving=!1,Gr(q,g),Gr(q,f),Gr(q,E),ce&&ce()},H=q=>(ce,Re)=>{const Te=q?Z:F,Ee=()=>k(ce,q,Re);ci(Te,[ce,Ee]),mb(()=>{Gr(ce,q?u:o),fr(ce,q?p:c),pb(Te)||gb(ce,r,h,Ee)})};return Ot(t,{onBeforeEnter(q){ci(O,[q]),fr(q,o),fr(q,l)},onBeforeAppear(q){ci(W,[q]),fr(q,u),fr(q,d)},onEnter:H(!1),onAppear:H(!0),onLeave(q,ce){q._isLeaving=!0;const Re=()=>Y(q,ce);fr(q,g),rN(),fr(q,E),mb(()=>{q._isLeaving&&(Gr(q,g),fr(q,f),pb(x)||gb(q,r,C,Re))}),ci(x,[q,Re])},onEnterCancelled(q){k(q,!1),ci(U,[q])},onAppearCancelled(q){k(q,!0),ci(M,[q])},onLeaveCancelled(q){Y(q),ci(B,[q])}})}function e0(e){if(e==null)return null;if(pt(e))return[Hu(e.enter),Hu(e.leave)];{const t=Hu(e);return[t,t]}}function Hu(e){return Fw(e)}function fr(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Gr(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function mb(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let t0=0;function gb(e,t,n,r){const a=e._endId=++t0,o=()=>{a===e._endId&&r()};if(n)return setTimeout(o,n);const{type:l,timeout:c,propCount:u}=nN(e,t);if(!l)return r();const d=l+"end";let p=0;const g=()=>{e.removeEventListener(d,E),o()},E=f=>{f.target===e&&++p>=u&&g()};setTimeout(()=>{p(n[b]||"").split(", "),a=r(`${Ur}Delay`),o=r(`${Ur}Duration`),l=Eb(a,o),c=r(`${$a}Delay`),u=r(`${$a}Duration`),d=Eb(c,u);let p=null,g=0,E=0;t===Ur?l>0&&(p=Ur,g=l,E=o.length):t===$a?d>0&&(p=$a,g=d,E=u.length):(g=Math.max(l,d),p=g>0?l>d?Ur:$a:null,E=p?p===Ur?o.length:u.length:0);const f=p===Ur&&/\b(transform|all)(,|$)/.test(r(`${Ur}Property`).toString());return{type:p,timeout:g,propCount:E,hasTransform:f}}function Eb(e,t){for(;e.lengthfb(n)+fb(e[r])))}function fb(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function rN(){return document.body.offsetHeight}const iN=new WeakMap,aN=new WeakMap,oN={name:"TransitionGroup",props:Ot({},JP,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Ml(),r=YL();let a,o;return Bv(()=>{if(!a.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!s0(a[0].el,n.vnode.el,l))return;a.forEach(i0),a.forEach(a0);const c=a.filter(o0);rN(),c.forEach(u=>{const d=u.el,p=d.style;fr(d,l),p.transform=p.webkitTransform=p.transitionDuration="";const g=d._moveCb=E=>{E&&E.target!==d||(!E||/transform$/.test(E.propertyName))&&(d.removeEventListener("transitionend",g),d._moveCb=null,Gr(d,l))};d.addEventListener("transitionend",g)})}),()=>{const l=nt(e),c=jP(l);let u=l.tag||Nt;a=o,o=t.default?kv(t.default()):[];for(let d=0;ddelete e.mode;oN.props;const r0=oN;function i0(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function a0(e){aN.set(e,e.el.getBoundingClientRect())}function o0(e){const t=iN.get(e),n=aN.get(e),r=t.left-n.left,a=t.top-n.top;if(r||a){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${r}px,${a}px)`,o.transitionDuration="0s",e}}function s0(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach(l=>{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(r);const{hasTransform:o}=nN(r);return a.removeChild(r),o}const Sb=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ke(t)?n=>el(t,n):t};function l0(e){e.target.composing=!0}function bb(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Tb={created(e,{modifiers:{lazy:t,trim:n,number:r}},a){e._assign=Sb(a);const o=r||a.props&&a.props.type==="number";Ji(e,t?"change":"input",l=>{if(l.target.composing)return;let c=e.value;n&&(c=c.trim()),o&&(c=$m(c)),e._assign(c)}),n&&Ji(e,"change",()=>{e.value=e.value.trim()}),t||(Ji(e,"compositionstart",l0),Ji(e,"compositionend",bb),Ji(e,"change",bb))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:a}},o){if(e._assign=Sb(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(a||e.type==="number")&&$m(e.value)===t))return;const l=t??"";e.value!==l&&(e.value=l)}},c0=Ot({patchProp:XP},FP);let hb;function u0(){return hb||(hb=mP(c0))}const _0=(...e)=>{const t=u0().createApp(...e),{mount:n}=t;return t.mount=r=>{const a=d0(r);if(!a)return;const o=t._component;!$e(o)&&!o.render&&!o.template&&(o.template=a.innerHTML),a.innerHTML="";const l=n(a,!1,a instanceof SVGElement);return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),l},t};function d0(e){return At(e)?document.querySelector(e):e}const p0={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},m0=_e("path",{fill:"currentColor","fill-rule":"evenodd",d:"M10 3a.75.75 0 0 1 .75.75v10.638l3.96-4.158a.75.75 0 1 1 1.08 1.04l-5.25 5.5a.75.75 0 0 1-1.08 0l-5.25-5.5a.75.75 0 1 1 1.08-1.04l3.96 4.158V3.75A.75.75 0 0 1 10 3Z","clip-rule":"evenodd"},null,-1),g0=[m0];function E0(e,t){return Me(),Ye("svg",p0,g0)}const f0={name:"heroicons-arrow-down20-solid",render:E0},S0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},b0=_e("g",{fill:"currentColor"},[_e("path",{d:"M8.25 4.5a3.75 3.75 0 1 1 7.5 0v8.25a3.75 3.75 0 1 1-7.5 0V4.5Z"}),_e("path",{d:"M6 10.5a.75.75 0 0 1 .75.75v1.5a5.25 5.25 0 1 0 10.5 0v-1.5a.75.75 0 0 1 1.5 0v1.5a6.751 6.751 0 0 1-6 6.709v2.291h3a.75.75 0 0 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h3v-2.291a6.751 6.751 0 0 1-6-6.709v-1.5A.75.75 0 0 1 6 10.5Z"})],-1),T0=[b0];function h0(e,t){return Me(),Ye("svg",S0,T0)}const R0={name:"heroicons-microphone-solid",render:h0},C0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},v0=_e("path",{fill:"currentColor","fill-rule":"evenodd",d:"M16.5 4.478v.227a48.816 48.816 0 0 1 3.878.512a.75.75 0 1 1-.256 1.478l-.209-.035l-1.005 13.07a3 3 0 0 1-2.991 2.77H8.084a3 3 0 0 1-2.991-2.77L4.087 6.66l-.209.035a.75.75 0 0 1-.256-1.478A48.567 48.567 0 0 1 7.5 4.705v-.227c0-1.564 1.213-2.9 2.816-2.951a52.662 52.662 0 0 1 3.369 0c1.603.051 2.815 1.387 2.815 2.951Zm-6.136-1.452a51.196 51.196 0 0 1 3.273 0C14.39 3.05 15 3.684 15 4.478v.113a49.488 49.488 0 0 0-6 0v-.113c0-.794.609-1.428 1.364-1.452Zm-.355 5.945a.75.75 0 1 0-1.5.058l.347 9a.75.75 0 1 0 1.499-.058l-.346-9Zm5.48.058a.75.75 0 1 0-1.498-.058l-.347 9a.75.75 0 0 0 1.5.058l.345-9Z","clip-rule":"evenodd"},null,-1),N0=[v0];function O0(e,t){return Me(),Ye("svg",C0,N0)}const A0={name:"heroicons-trash-solid",render:O0},y0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},I0=_e("g",{fill:"currentColor"},[_e("path",{"fill-rule":"evenodd",d:"M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0 0 16.5 9h-1.875a1.875 1.875 0 0 1-1.875-1.875V5.25A3.75 3.75 0 0 0 9 1.5H5.625ZM7.5 15a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 7.5 15Zm.75 2.25a.75.75 0 0 0 0 1.5H12a.75.75 0 0 0 0-1.5H8.25Z","clip-rule":"evenodd"}),_e("path",{d:"M12.971 1.816A5.23 5.23 0 0 1 14.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 0 1 3.434 1.279a9.768 9.768 0 0 0-6.963-6.963Z"})],-1),D0=[I0];function x0(e,t){return Me(),Ye("svg",y0,D0)}const M0={name:"heroicons-document-text-solid",render:x0},w0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},L0=_e("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5a17.92 17.92 0 0 1-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418"},null,-1),P0=[L0];function k0(e,t){return Me(),Ye("svg",w0,P0)}const F0={name:"heroicons-globe-alt",render:k0},U0={viewBox:"0 0 256 256",width:"1.2em",height:"1.2em"},B0=_e("path",{fill:"currentColor",d:"M212 76v-4a44 44 0 0 0-74.86-31.31a3.93 3.93 0 0 0-1.14 2.8v88.72a4 4 0 0 0 6.2 3.33a47.67 47.67 0 0 1 25.48-7.54a8.18 8.18 0 0 1 8.31 7.58a8 8 0 0 1-8 8.42a32 32 0 0 0-32 32v33.88a4 4 0 0 0 1.49 3.12a47.92 47.92 0 0 0 74.21-17.16a4 4 0 0 0-4.49-5.56A68.06 68.06 0 0 1 192 192h-7.73a8.18 8.18 0 0 1-8.25-7.47a8 8 0 0 1 8-8.53h8a51.6 51.6 0 0 0 24-5.88A52 52 0 0 0 212 76Zm-12 36h-4a36 36 0 0 1-36-36v-4a8 8 0 0 1 16 0v4a20 20 0 0 0 20 20h4a8 8 0 0 1 0 16ZM88 28a44.05 44.05 0 0 0-44 44v4a52 52 0 0 0-4 94.12A51.6 51.6 0 0 0 64 176h7.73a8.18 8.18 0 0 1 8.27 7.47a8 8 0 0 1-8 8.53h-8a67.48 67.48 0 0 1-15.21-1.73a4 4 0 0 0-4.5 5.55A47.93 47.93 0 0 0 118.51 213a4 4 0 0 0 1.49-3.12V176a32 32 0 0 0-32-32a8 8 0 0 1-8-8.42a8.18 8.18 0 0 1 8.32-7.58a47.67 47.67 0 0 1 25.48 7.54a4 4 0 0 0 6.2-3.33V43.49a4 4 0 0 0-1.14-2.81A43.85 43.85 0 0 0 88 28Zm8 48a36 36 0 0 1-36 36h-4a8 8 0 0 1 0-16h4a20 20 0 0 0 20-20v-4a8 8 0 0 1 16 0Z"},null,-1),G0=[B0];function Y0(e,t){return Me(),Ye("svg",U0,G0)}const q0={name:"ph-brain-fill",render:Y0},H0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},V0=_e("path",{fill:"currentColor","fill-rule":"evenodd",d:"M14.615 1.595a.75.75 0 0 1 .359.852L12.982 9.75h7.268a.75.75 0 0 1 .548 1.262l-10.5 11.25a.75.75 0 0 1-1.272-.71l1.992-7.302H3.75a.75.75 0 0 1-.548-1.262l10.5-11.25a.75.75 0 0 1 .913-.143Z","clip-rule":"evenodd"},null,-1),$0=[V0];function W0(e,t){return Me(),Ye("svg",H0,$0)}const z0={name:"heroicons-bolt-solid",render:W0},K0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},Q0=_e("path",{fill:"currentColor",d:"M3.478 2.405a.75.75 0 0 0-.926.94l2.432 7.905H13.5a.75.75 0 0 1 0 1.5H4.984l-2.432 7.905a.75.75 0 0 0 .926.94a60.519 60.519 0 0 0 18.445-8.986a.75.75 0 0 0 0-1.218A60.517 60.517 0 0 0 3.478 2.405Z"},null,-1),X0=[Q0];function Z0(e,t){return Me(),Ye("svg",K0,X0)}const J0={name:"heroicons-paper-airplane-solid",render:Z0};var ji=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var gl={exports:{}};/**
- * @license
- * Lodash
- * Copyright OpenJS Foundation and other contributors
- * Released under MIT license
- * Based on Underscore.js 1.8.3
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- */gl.exports;(function(e,t){(function(){var n,r="4.17.21",a=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",l="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",d=500,p="__lodash_placeholder__",g=1,E=2,f=4,b=1,h=2,C=1,O=2,F=4,U=8,x=16,B=32,W=64,Z=128,M=256,k=512,Y=30,H="...",q=800,ce=16,Re=1,Te=2,Ee=3,L=1/0,$=9007199254740991,ue=17976931348623157e292,ge=0/0,Se=4294967295,De=Se-1,We=Se>>>1,Xe=[["ary",Z],["bind",C],["bindKey",O],["curry",U],["curryRight",x],["flip",k],["partial",B],["partialRight",W],["rearg",M]],w="[object Arguments]",pe="[object Array]",de="[object AsyncFunction]",fe="[object Boolean]",Ne="[object Date]",Be="[object DOMException]",Ue="[object Error]",v="[object Function]",y="[object GeneratorFunction]",G="[object Map]",j="[object Number]",X="[object Null]",ie="[object Object]",me="[object Promise]",z="[object Proxy]",le="[object RegExp]",K="[object Set]",ae="[object String]",se="[object Symbol]",he="[object Undefined]",Ae="[object WeakMap]",Ge="[object WeakSet]",ne="[object ArrayBuffer]",oe="[object DataView]",Ce="[object Float32Array]",Fe="[object Float64Array]",at="[object Int8Array]",yt="[object Int16Array]",Ze="[object Int32Array]",ln="[object Uint8Array]",bt="[object Uint8ClampedArray]",wt="[object Uint16Array]",Nr="[object Uint32Array]",Ql=/\b__p \+= '';/g,Xl=/\b(__p \+=) '' \+/g,Zl=/(__e\(.*?\)|\b__t\)) \+\n'';/g,yo=/&(?:amp|lt|gt|quot|#39);/g,Io=/[&<>"']/g,Jl=RegExp(yo.source),jl=RegExp(Io.source),ec=/<%-([\s\S]+?)%>/g,tc=/<%([\s\S]+?)%>/g,Do=/<%=([\s\S]+?)%>/g,nc=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rc=/^\w*$/,ic=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ta=/[\\^$.*+?()[\]{}|]/g,ac=RegExp(Ta.source),ha=/^\s+/,oc=/\s/,sc=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,lc=/\{\n\/\* \[wrapped with (.+)\] \*/,cc=/,? & /,uc=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,_c=/[()=,{}\[\]\/\s]/,dc=/\\(\\)?/g,pc=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,xo=/\w*$/,mc=/^[-+]0x[0-9a-f]+$/i,gc=/^0b[01]+$/i,Ec=/^\[object .+?Constructor\]$/,fc=/^0o[0-7]+$/i,Sc=/^(?:0|[1-9]\d*)$/,bc=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Di=/($^)/,Tc=/['\n\r\u2028\u2029\\]/g,xi="\\ud800-\\udfff",hc="\\u0300-\\u036f",Rc="\\ufe20-\\ufe2f",Cc="\\u20d0-\\u20ff",Mo=hc+Rc+Cc,wo="\\u2700-\\u27bf",Lo="a-z\\xdf-\\xf6\\xf8-\\xff",vc="\\xac\\xb1\\xd7\\xf7",Nc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Oc="\\u2000-\\u206f",Ac=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Po="A-Z\\xc0-\\xd6\\xd8-\\xde",ko="\\ufe0e\\ufe0f",Fo=vc+Nc+Oc+Ac,Ra="['’]",yc="["+xi+"]",Uo="["+Fo+"]",Mi="["+Mo+"]",Bo="\\d+",Ic="["+wo+"]",Go="["+Lo+"]",Yo="[^"+xi+Fo+Bo+wo+Lo+Po+"]",Ca="\\ud83c[\\udffb-\\udfff]",Dc="(?:"+Mi+"|"+Ca+")",qo="[^"+xi+"]",va="(?:\\ud83c[\\udde6-\\uddff]){2}",Na="[\\ud800-\\udbff][\\udc00-\\udfff]",Or="["+Po+"]",Ho="\\u200d",Vo="(?:"+Go+"|"+Yo+")",$o="(?:"+Or+"|"+Yo+")",Oa="(?:"+Ra+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+Ra+"(?:D|LL|M|RE|S|T|VE))?",Wo=Dc+"?",zo="["+ko+"]?",Ko="(?:"+Ho+"(?:"+[qo,va,Na].join("|")+")"+zo+Wo+")*",wi="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ya="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ia=zo+Wo+Ko,Qo="(?:"+[Ic,va,Na].join("|")+")"+Ia,Xo="(?:"+[qo+Mi+"?",Mi,va,Na,yc].join("|")+")",vE=RegExp(Ra,"g"),NE=RegExp(Mi,"g"),xc=RegExp(Ca+"(?="+Ca+")|"+Xo+Ia,"g"),UO=RegExp([Or+"?"+Go+"+"+Oa+"(?="+[Uo,Or,"$"].join("|")+")",$o+"+"+Aa+"(?="+[Uo,Or+Vo,"$"].join("|")+")",Or+"?"+Vo+"+"+Oa,Or+"+"+Aa,ya,wi,Bo,Qo].join("|"),"g"),BO=RegExp("["+Ho+xi+Mo+ko+"]"),GO=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,YO=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],qO=-1,mt={};mt[Ce]=mt[Fe]=mt[at]=mt[yt]=mt[Ze]=mt[ln]=mt[bt]=mt[wt]=mt[Nr]=!0,mt[w]=mt[pe]=mt[ne]=mt[fe]=mt[oe]=mt[Ne]=mt[Ue]=mt[v]=mt[G]=mt[j]=mt[ie]=mt[le]=mt[K]=mt[ae]=mt[Ae]=!1;var dt={};dt[w]=dt[pe]=dt[ne]=dt[oe]=dt[fe]=dt[Ne]=dt[Ce]=dt[Fe]=dt[at]=dt[yt]=dt[Ze]=dt[G]=dt[j]=dt[ie]=dt[le]=dt[K]=dt[ae]=dt[se]=dt[ln]=dt[bt]=dt[wt]=dt[Nr]=!0,dt[Ue]=dt[v]=dt[Ae]=!1;var HO={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},VO={"&":"&","<":"<",">":">",'"':""","'":"'"},$O={"&":"&","<":"<",">":">",""":'"',"'":"'"},WO={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},zO=parseFloat,KO=parseInt,OE=typeof ji=="object"&&ji&&ji.Object===Object&&ji,QO=typeof self=="object"&&self&&self.Object===Object&&self,Ut=OE||QO||Function("return this")(),Mc=t&&!t.nodeType&&t,Jr=Mc&&!0&&e&&!e.nodeType&&e,AE=Jr&&Jr.exports===Mc,wc=AE&&OE.process,Tn=function(){try{var D=Jr&&Jr.require&&Jr.require("util").types;return D||wc&&wc.binding&&wc.binding("util")}catch{}}(),yE=Tn&&Tn.isArrayBuffer,IE=Tn&&Tn.isDate,DE=Tn&&Tn.isMap,xE=Tn&&Tn.isRegExp,ME=Tn&&Tn.isSet,wE=Tn&&Tn.isTypedArray;function cn(D,Q,V){switch(V.length){case 0:return D.call(Q);case 1:return D.call(Q,V[0]);case 2:return D.call(Q,V[0],V[1]);case 3:return D.call(Q,V[0],V[1],V[2])}return D.apply(Q,V)}function XO(D,Q,V,ve){for(var qe=-1,ot=D==null?0:D.length;++qe-1}function Lc(D,Q,V){for(var ve=-1,qe=D==null?0:D.length;++ve-1;);return V}function YE(D,Q){for(var V=D.length;V--&&Li(Q,D[V],0)>-1;);return V}function aA(D,Q){for(var V=D.length,ve=0;V--;)D[V]===Q&&++ve;return ve}var oA=Uc(HO),sA=Uc(VO);function lA(D){return"\\"+WO[D]}function cA(D,Q){return D==null?n:D[Q]}function Pi(D){return BO.test(D)}function uA(D){return GO.test(D)}function _A(D){for(var Q,V=[];!(Q=D.next()).done;)V.push(Q.value);return V}function qc(D){var Q=-1,V=Array(D.size);return D.forEach(function(ve,qe){V[++Q]=[qe,ve]}),V}function qE(D,Q){return function(V){return D(Q(V))}}function Ir(D,Q){for(var V=-1,ve=D.length,qe=0,ot=[];++V-1}function JA(i,s){var _=this.__data__,m=ms(_,i);return m<0?(++this.size,_.push([i,s])):_[m][1]=s,this}sr.prototype.clear=KA,sr.prototype.delete=QA,sr.prototype.get=XA,sr.prototype.has=ZA,sr.prototype.set=JA;function lr(i){var s=-1,_=i==null?0:i.length;for(this.clear();++s<_;){var m=i[s];this.set(m[0],m[1])}}function jA(){this.size=0,this.__data__={hash:new ei,map:new(Ma||sr),string:new ei}}function ey(i){var s=Os(this,i).delete(i);return this.size-=s?1:0,s}function ty(i){return Os(this,i).get(i)}function ny(i){return Os(this,i).has(i)}function ry(i,s){var _=Os(this,i),m=_.size;return _.set(i,s),this.size+=_.size==m?0:1,this}lr.prototype.clear=jA,lr.prototype.delete=ey,lr.prototype.get=ty,lr.prototype.has=ny,lr.prototype.set=ry;function ti(i){var s=-1,_=i==null?0:i.length;for(this.__data__=new lr;++s<_;)this.add(i[s])}function iy(i){return this.__data__.set(i,u),this}function ay(i){return this.__data__.has(i)}ti.prototype.add=ti.prototype.push=iy,ti.prototype.has=ay;function Pn(i){var s=this.__data__=new sr(i);this.size=s.size}function oy(){this.__data__=new sr,this.size=0}function sy(i){var s=this.__data__,_=s.delete(i);return this.size=s.size,_}function ly(i){return this.__data__.get(i)}function cy(i){return this.__data__.has(i)}function uy(i,s){var _=this.__data__;if(_ instanceof sr){var m=_.__data__;if(!Ma||m.length=s?i:s)),i}function vn(i,s,_,m,S,R){var N,A=s&g,P=s&E,ee=s&f;if(_&&(N=S?_(i,m,S,R):_(i)),N!==n)return N;if(!St(i))return i;var te=He(i);if(te){if(N=nI(i),!A)return en(i,N)}else{var re=$t(i),be=re==v||re==y;if(Pr(i))return Nf(i,A);if(re==ie||re==w||be&&!S){if(N=P||be?{}:Vf(i),!A)return P?$y(i,my(N,i)):Vy(i,ef(N,i))}else{if(!dt[re])return S?i:{};N=rI(i,re,A)}}R||(R=new Pn);var ye=R.get(i);if(ye)return ye;R.set(i,N),bS(i)?i.forEach(function(Pe){N.add(vn(Pe,s,_,Pe,i,R))}):fS(i)&&i.forEach(function(Pe,Je){N.set(Je,vn(Pe,s,_,Je,i,R))});var Le=ee?P?mu:pu:P?nn:Lt,ze=te?n:Le(i);return hn(ze||i,function(Pe,Je){ze&&(Je=Pe,Pe=i[Je]),ka(N,Je,vn(Pe,s,_,Je,i,R))}),N}function gy(i){var s=Lt(i);return function(_){return tf(_,i,s)}}function tf(i,s,_){var m=_.length;if(i==null)return!m;for(i=ut(i);m--;){var S=_[m],R=s[S],N=i[S];if(N===n&&!(S in i)||!R(N))return!1}return!0}function nf(i,s,_){if(typeof i!="function")throw new Rn(l);return Ha(function(){i.apply(n,_)},s)}function Fa(i,s,_,m){var S=-1,R=Zo,N=!0,A=i.length,P=[],ee=s.length;if(!A)return P;_&&(s=Et(s,un(_))),m?(R=Lc,N=!1):s.length>=a&&(R=Da,N=!1,s=new ti(s));e:for(;++SS?0:S+_),m=m===n||m>S?S:Ve(m),m<0&&(m+=S),m=_>m?0:hS(m);_0&&_(A)?s>1?Bt(A,s-1,_,m,S):yr(S,A):m||(S[S.length]=A)}return S}var Qc=xf(),of=xf(!0);function $n(i,s){return i&&Qc(i,s,Lt)}function Xc(i,s){return i&&of(i,s,Lt)}function Es(i,s){return Ar(s,function(_){return pr(i[_])})}function ri(i,s){s=wr(s,i);for(var _=0,m=s.length;i!=null&&_s}function Sy(i,s){return i!=null&<.call(i,s)}function by(i,s){return i!=null&&s in ut(i)}function Ty(i,s,_){return i>=Vt(s,_)&&i=120&&te.length>=120)?new ti(N&&te):n}te=i[0];var re=-1,be=A[0];e:for(;++re-1;)A!==i&&ss.call(A,P,1),ss.call(i,P,1);return i}function ff(i,s){for(var _=i?s.length:0,m=_-1;_--;){var S=s[_];if(_==m||S!==R){var R=S;dr(S)?ss.call(i,S,1):ou(i,S)}}return i}function ru(i,s){return i+us(XE()*(s-i+1))}function wy(i,s,_,m){for(var S=-1,R=Dt(cs((s-i)/(_||1)),0),N=V(R);R--;)N[m?R:++S]=i,i+=_;return N}function iu(i,s){var _="";if(!i||s<1||s>$)return _;do s%2&&(_+=i),s=us(s/2),s&&(i+=i);while(s);return _}function Ke(i,s){return hu(zf(i,s,rn),i+"")}function Ly(i){return jE(Wi(i))}function Py(i,s){var _=Wi(i);return As(_,ni(s,0,_.length))}function Ga(i,s,_,m){if(!St(i))return i;s=wr(s,i);for(var S=-1,R=s.length,N=R-1,A=i;A!=null&&++SS?0:S+s),_=_>S?S:_,_<0&&(_+=S),S=s>_?0:_-s>>>0,s>>>=0;for(var R=V(S);++m>>1,N=i[R];N!==null&&!dn(N)&&(_?N<=s:N=a){var ee=s?null:Qy(i);if(ee)return jo(ee);N=!1,S=Da,P=new ti}else P=s?[]:A;e:for(;++m=m?i:Nn(i,s,_)}var vf=OA||function(i){return Ut.clearTimeout(i)};function Nf(i,s){if(s)return i.slice();var _=i.length,m=$E?$E(_):new i.constructor(_);return i.copy(m),m}function uu(i){var s=new i.constructor(i.byteLength);return new as(s).set(new as(i)),s}function Gy(i,s){var _=s?uu(i.buffer):i.buffer;return new i.constructor(_,i.byteOffset,i.byteLength)}function Yy(i){var s=new i.constructor(i.source,xo.exec(i));return s.lastIndex=i.lastIndex,s}function qy(i){return Pa?ut(Pa.call(i)):{}}function Of(i,s){var _=s?uu(i.buffer):i.buffer;return new i.constructor(_,i.byteOffset,i.length)}function Af(i,s){if(i!==s){var _=i!==n,m=i===null,S=i===i,R=dn(i),N=s!==n,A=s===null,P=s===s,ee=dn(s);if(!A&&!ee&&!R&&i>s||R&&N&&P&&!A&&!ee||m&&N&&P||!_&&P||!S)return 1;if(!m&&!R&&!ee&&i=A)return P;var ee=_[m];return P*(ee=="desc"?-1:1)}}return i.index-s.index}function yf(i,s,_,m){for(var S=-1,R=i.length,N=_.length,A=-1,P=s.length,ee=Dt(R-N,0),te=V(P+ee),re=!m;++A1?_[S-1]:n,N=S>2?_[2]:n;for(R=i.length>3&&typeof R=="function"?(S--,R):n,N&&Xt(_[0],_[1],N)&&(R=S<3?n:R,S=1),s=ut(s);++m-1?S[R?s[N]:N]:n}}function Lf(i){return _r(function(s){var _=s.length,m=_,S=Cn.prototype.thru;for(i&&s.reverse();m--;){var R=s[m];if(typeof R!="function")throw new Rn(l);if(S&&!N&&Ns(R)=="wrapper")var N=new Cn([],!0)}for(m=N?m:_;++m<_;){R=s[m];var A=Ns(R),P=A=="wrapper"?gu(R):n;P&&bu(P[0])&&P[1]==(Z|U|B|M)&&!P[4].length&&P[9]==1?N=N[Ns(P[0])].apply(N,P[3]):N=R.length==1&&bu(R)?N[A]():N.thru(R)}return function(){var ee=arguments,te=ee[0];if(N&&ee.length==1&&He(te))return N.plant(te).value();for(var re=0,be=_?s[re].apply(this,ee):te;++re<_;)be=s[re].call(this,be);return be}})}function hs(i,s,_,m,S,R,N,A,P,ee){var te=s&Z,re=s&C,be=s&O,ye=s&(U|x),Le=s&k,ze=be?n:Ya(i);function Pe(){for(var Je=arguments.length,tt=V(Je),pn=Je;pn--;)tt[pn]=arguments[pn];if(ye)var Zt=Vi(Pe),mn=aA(tt,Zt);if(m&&(tt=yf(tt,m,S,ye)),R&&(tt=If(tt,R,N,ye)),Je-=mn,ye&&Je1&&tt.reverse(),te&&PA))return!1;var ee=R.get(i),te=R.get(s);if(ee&&te)return ee==s&&te==i;var re=-1,be=!0,ye=_&h?new ti:n;for(R.set(i,s),R.set(s,i);++re1?"& ":"")+s[m],s=s.join(_>2?", ":" "),i.replace(sc,`{
-/* [wrapped with `+s+`] */
-`)}function aI(i){return He(i)||oi(i)||!!(KE&&i&&i[KE])}function dr(i,s){var _=typeof i;return s=s??$,!!s&&(_=="number"||_!="symbol"&&Sc.test(i))&&i>-1&&i%1==0&&i0){if(++s>=q)return arguments[0]}else s=0;return i.apply(n,arguments)}}function As(i,s){var _=-1,m=i.length,S=m-1;for(s=s===n?m:s;++_1?i[s-1]:n;return _=typeof _=="function"?(i.pop(),_):n,aS(i,_)});function oS(i){var s=T(i);return s.__chain__=!0,s}function ED(i,s){return s(i),i}function ys(i,s){return s(i)}var fD=_r(function(i){var s=i.length,_=s?i[0]:0,m=this.__wrapped__,S=function(R){return Kc(R,i)};return s>1||this.__actions__.length||!(m instanceof je)||!dr(_)?this.thru(S):(m=m.slice(_,+_+(s?1:0)),m.__actions__.push({func:ys,args:[S],thisArg:n}),new Cn(m,this.__chain__).thru(function(R){return s&&!R.length&&R.push(n),R}))});function SD(){return oS(this)}function bD(){return new Cn(this.value(),this.__chain__)}function TD(){this.__values__===n&&(this.__values__=TS(this.value()));var i=this.__index__>=this.__values__.length,s=i?n:this.__values__[this.__index__++];return{done:i,value:s}}function hD(){return this}function RD(i){for(var s,_=this;_ instanceof ps;){var m=jf(_);m.__index__=0,m.__values__=n,s?S.__wrapped__=m:s=m;var S=m;_=_.__wrapped__}return S.__wrapped__=i,s}function CD(){var i=this.__wrapped__;if(i instanceof je){var s=i;return this.__actions__.length&&(s=new je(this)),s=s.reverse(),s.__actions__.push({func:ys,args:[Ru],thisArg:n}),new Cn(s,this.__chain__)}return this.thru(Ru)}function vD(){return Rf(this.__wrapped__,this.__actions__)}var ND=Ts(function(i,s,_){lt.call(i,_)?++i[_]:cr(i,_,1)});function OD(i,s,_){var m=He(i)?LE:Ey;return _&&Xt(i,s,_)&&(s=n),m(i,we(s,3))}function AD(i,s){var _=He(i)?Ar:af;return _(i,we(s,3))}var yD=wf(eS),ID=wf(tS);function DD(i,s){return Bt(Is(i,s),1)}function xD(i,s){return Bt(Is(i,s),L)}function MD(i,s,_){return _=_===n?1:Ve(_),Bt(Is(i,s),_)}function sS(i,s){var _=He(i)?hn:xr;return _(i,we(s,3))}function lS(i,s){var _=He(i)?ZO:rf;return _(i,we(s,3))}var wD=Ts(function(i,s,_){lt.call(i,_)?i[_].push(s):cr(i,_,[s])});function LD(i,s,_,m){i=tn(i)?i:Wi(i),_=_&&!m?Ve(_):0;var S=i.length;return _<0&&(_=Dt(S+_,0)),Ls(i)?_<=S&&i.indexOf(s,_)>-1:!!S&&Li(i,s,_)>-1}var PD=Ke(function(i,s,_){var m=-1,S=typeof s=="function",R=tn(i)?V(i.length):[];return xr(i,function(N){R[++m]=S?cn(s,N,_):Ua(N,s,_)}),R}),kD=Ts(function(i,s,_){cr(i,_,s)});function Is(i,s){var _=He(i)?Et:_f;return _(i,we(s,3))}function FD(i,s,_,m){return i==null?[]:(He(s)||(s=s==null?[]:[s]),_=m?n:_,He(_)||(_=_==null?[]:[_]),gf(i,s,_))}var UD=Ts(function(i,s,_){i[_?0:1].push(s)},function(){return[[],[]]});function BD(i,s,_){var m=He(i)?Pc:UE,S=arguments.length<3;return m(i,we(s,4),_,S,xr)}function GD(i,s,_){var m=He(i)?JO:UE,S=arguments.length<3;return m(i,we(s,4),_,S,rf)}function YD(i,s){var _=He(i)?Ar:af;return _(i,Ms(we(s,3)))}function qD(i){var s=He(i)?jE:Ly;return s(i)}function HD(i,s,_){(_?Xt(i,s,_):s===n)?s=1:s=Ve(s);var m=He(i)?_y:Py;return m(i,s)}function VD(i){var s=He(i)?dy:Fy;return s(i)}function $D(i){if(i==null)return 0;if(tn(i))return Ls(i)?ki(i):i.length;var s=$t(i);return s==G||s==K?i.size:eu(i).length}function WD(i,s,_){var m=He(i)?kc:Uy;return _&&Xt(i,s,_)&&(s=n),m(i,we(s,3))}var zD=Ke(function(i,s){if(i==null)return[];var _=s.length;return _>1&&Xt(i,s[0],s[1])?s=[]:_>2&&Xt(s[0],s[1],s[2])&&(s=[s[0]]),gf(i,Bt(s,1),[])}),Ds=AA||function(){return Ut.Date.now()};function KD(i,s){if(typeof s!="function")throw new Rn(l);return i=Ve(i),function(){if(--i<1)return s.apply(this,arguments)}}function cS(i,s,_){return s=_?n:s,s=i&&s==null?i.length:s,ur(i,Z,n,n,n,n,s)}function uS(i,s){var _;if(typeof s!="function")throw new Rn(l);return i=Ve(i),function(){return--i>0&&(_=s.apply(this,arguments)),i<=1&&(s=n),_}}var vu=Ke(function(i,s,_){var m=C;if(_.length){var S=Ir(_,Vi(vu));m|=B}return ur(i,m,s,_,S)}),_S=Ke(function(i,s,_){var m=C|O;if(_.length){var S=Ir(_,Vi(_S));m|=B}return ur(s,m,i,_,S)});function dS(i,s,_){s=_?n:s;var m=ur(i,U,n,n,n,n,n,s);return m.placeholder=dS.placeholder,m}function pS(i,s,_){s=_?n:s;var m=ur(i,x,n,n,n,n,n,s);return m.placeholder=pS.placeholder,m}function mS(i,s,_){var m,S,R,N,A,P,ee=0,te=!1,re=!1,be=!0;if(typeof i!="function")throw new Rn(l);s=An(s)||0,St(_)&&(te=!!_.leading,re="maxWait"in _,R=re?Dt(An(_.maxWait)||0,s):R,be="trailing"in _?!!_.trailing:be);function ye(vt){var Fn=m,gr=S;return m=S=n,ee=vt,N=i.apply(gr,Fn),N}function Le(vt){return ee=vt,A=Ha(Je,s),te?ye(vt):N}function ze(vt){var Fn=vt-P,gr=vt-ee,wS=s-Fn;return re?Vt(wS,R-gr):wS}function Pe(vt){var Fn=vt-P,gr=vt-ee;return P===n||Fn>=s||Fn<0||re&&gr>=R}function Je(){var vt=Ds();if(Pe(vt))return tt(vt);A=Ha(Je,ze(vt))}function tt(vt){return A=n,be&&m?ye(vt):(m=S=n,N)}function pn(){A!==n&&vf(A),ee=0,m=P=S=A=n}function Zt(){return A===n?N:tt(Ds())}function mn(){var vt=Ds(),Fn=Pe(vt);if(m=arguments,S=this,P=vt,Fn){if(A===n)return Le(P);if(re)return vf(A),A=Ha(Je,s),ye(P)}return A===n&&(A=Ha(Je,s)),N}return mn.cancel=pn,mn.flush=Zt,mn}var QD=Ke(function(i,s){return nf(i,1,s)}),XD=Ke(function(i,s,_){return nf(i,An(s)||0,_)});function ZD(i){return ur(i,k)}function xs(i,s){if(typeof i!="function"||s!=null&&typeof s!="function")throw new Rn(l);var _=function(){var m=arguments,S=s?s.apply(this,m):m[0],R=_.cache;if(R.has(S))return R.get(S);var N=i.apply(this,m);return _.cache=R.set(S,N)||R,N};return _.cache=new(xs.Cache||lr),_}xs.Cache=lr;function Ms(i){if(typeof i!="function")throw new Rn(l);return function(){var s=arguments;switch(s.length){case 0:return!i.call(this);case 1:return!i.call(this,s[0]);case 2:return!i.call(this,s[0],s[1]);case 3:return!i.call(this,s[0],s[1],s[2])}return!i.apply(this,s)}}function JD(i){return uS(2,i)}var jD=By(function(i,s){s=s.length==1&&He(s[0])?Et(s[0],un(we())):Et(Bt(s,1),un(we()));var _=s.length;return Ke(function(m){for(var S=-1,R=Vt(m.length,_);++S=s}),oi=lf(function(){return arguments}())?lf:function(i){return Tt(i)&<.call(i,"callee")&&!zE.call(i,"callee")},He=V.isArray,mx=yE?un(yE):Ry;function tn(i){return i!=null&&ws(i.length)&&!pr(i)}function Ct(i){return Tt(i)&&tn(i)}function gx(i){return i===!0||i===!1||Tt(i)&&Qt(i)==fe}var Pr=IA||ku,Ex=IE?un(IE):Cy;function fx(i){return Tt(i)&&i.nodeType===1&&!Va(i)}function Sx(i){if(i==null)return!0;if(tn(i)&&(He(i)||typeof i=="string"||typeof i.splice=="function"||Pr(i)||$i(i)||oi(i)))return!i.length;var s=$t(i);if(s==G||s==K)return!i.size;if(qa(i))return!eu(i).length;for(var _ in i)if(lt.call(i,_))return!1;return!0}function bx(i,s){return Ba(i,s)}function Tx(i,s,_){_=typeof _=="function"?_:n;var m=_?_(i,s):n;return m===n?Ba(i,s,n,_):!!m}function Ou(i){if(!Tt(i))return!1;var s=Qt(i);return s==Ue||s==Be||typeof i.message=="string"&&typeof i.name=="string"&&!Va(i)}function hx(i){return typeof i=="number"&&QE(i)}function pr(i){if(!St(i))return!1;var s=Qt(i);return s==v||s==y||s==de||s==z}function ES(i){return typeof i=="number"&&i==Ve(i)}function ws(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=$}function St(i){var s=typeof i;return i!=null&&(s=="object"||s=="function")}function Tt(i){return i!=null&&typeof i=="object"}var fS=DE?un(DE):Ny;function Rx(i,s){return i===s||jc(i,s,Eu(s))}function Cx(i,s,_){return _=typeof _=="function"?_:n,jc(i,s,Eu(s),_)}function vx(i){return SS(i)&&i!=+i}function Nx(i){if(lI(i))throw new qe(o);return cf(i)}function Ox(i){return i===null}function Ax(i){return i==null}function SS(i){return typeof i=="number"||Tt(i)&&Qt(i)==j}function Va(i){if(!Tt(i)||Qt(i)!=ie)return!1;var s=os(i);if(s===null)return!0;var _=lt.call(s,"constructor")&&s.constructor;return typeof _=="function"&&_ instanceof _&&ns.call(_)==CA}var Au=xE?un(xE):Oy;function yx(i){return ES(i)&&i>=-$&&i<=$}var bS=ME?un(ME):Ay;function Ls(i){return typeof i=="string"||!He(i)&&Tt(i)&&Qt(i)==ae}function dn(i){return typeof i=="symbol"||Tt(i)&&Qt(i)==se}var $i=wE?un(wE):yy;function Ix(i){return i===n}function Dx(i){return Tt(i)&&$t(i)==Ae}function xx(i){return Tt(i)&&Qt(i)==Ge}var Mx=vs(tu),wx=vs(function(i,s){return i<=s});function TS(i){if(!i)return[];if(tn(i))return Ls(i)?Ln(i):en(i);if(xa&&i[xa])return _A(i[xa]());var s=$t(i),_=s==G?qc:s==K?jo:Wi;return _(i)}function mr(i){if(!i)return i===0?i:0;if(i=An(i),i===L||i===-L){var s=i<0?-1:1;return s*ue}return i===i?i:0}function Ve(i){var s=mr(i),_=s%1;return s===s?_?s-_:s:0}function hS(i){return i?ni(Ve(i),0,Se):0}function An(i){if(typeof i=="number")return i;if(dn(i))return ge;if(St(i)){var s=typeof i.valueOf=="function"?i.valueOf():i;i=St(s)?s+"":s}if(typeof i!="string")return i===0?i:+i;i=BE(i);var _=gc.test(i);return _||fc.test(i)?KO(i.slice(2),_?2:8):mc.test(i)?ge:+i}function RS(i){return Wn(i,nn(i))}function Lx(i){return i?ni(Ve(i),-$,$):i===0?i:0}function st(i){return i==null?"":_n(i)}var Px=qi(function(i,s){if(qa(s)||tn(s)){Wn(s,Lt(s),i);return}for(var _ in s)lt.call(s,_)&&ka(i,_,s[_])}),CS=qi(function(i,s){Wn(s,nn(s),i)}),Ps=qi(function(i,s,_,m){Wn(s,nn(s),i,m)}),kx=qi(function(i,s,_,m){Wn(s,Lt(s),i,m)}),Fx=_r(Kc);function Ux(i,s){var _=Yi(i);return s==null?_:ef(_,s)}var Bx=Ke(function(i,s){i=ut(i);var _=-1,m=s.length,S=m>2?s[2]:n;for(S&&Xt(s[0],s[1],S)&&(m=1);++_1),R}),Wn(i,mu(i),_),m&&(_=vn(_,g|E|f,Xy));for(var S=s.length;S--;)ou(_,s[S]);return _});function rM(i,s){return NS(i,Ms(we(s)))}var iM=_r(function(i,s){return i==null?{}:xy(i,s)});function NS(i,s){if(i==null)return{};var _=Et(mu(i),function(m){return[m]});return s=we(s),Ef(i,_,function(m,S){return s(m,S[0])})}function aM(i,s,_){s=wr(s,i);var m=-1,S=s.length;for(S||(S=1,i=n);++ms){var m=i;i=s,s=m}if(_||i%1||s%1){var S=XE();return Vt(i+S*(s-i+zO("1e-"+((S+"").length-1))),s)}return ru(i,s)}var EM=Hi(function(i,s,_){return s=s.toLowerCase(),i+(_?yS(s):s)});function yS(i){return Du(st(i).toLowerCase())}function IS(i){return i=st(i),i&&i.replace(bc,oA).replace(NE,"")}function fM(i,s,_){i=st(i),s=_n(s);var m=i.length;_=_===n?m:ni(Ve(_),0,m);var S=_;return _-=s.length,_>=0&&i.slice(_,S)==s}function SM(i){return i=st(i),i&&jl.test(i)?i.replace(Io,sA):i}function bM(i){return i=st(i),i&&ac.test(i)?i.replace(Ta,"\\$&"):i}var TM=Hi(function(i,s,_){return i+(_?"-":"")+s.toLowerCase()}),hM=Hi(function(i,s,_){return i+(_?" ":"")+s.toLowerCase()}),RM=Mf("toLowerCase");function CM(i,s,_){i=st(i),s=Ve(s);var m=s?ki(i):0;if(!s||m>=s)return i;var S=(s-m)/2;return Cs(us(S),_)+i+Cs(cs(S),_)}function vM(i,s,_){i=st(i),s=Ve(s);var m=s?ki(i):0;return s&&m>>0,_?(i=st(i),i&&(typeof s=="string"||s!=null&&!Au(s))&&(s=_n(s),!s&&Pi(i))?Lr(Ln(i),0,_):i.split(s,_)):[]}var xM=Hi(function(i,s,_){return i+(_?" ":"")+Du(s)});function MM(i,s,_){return i=st(i),_=_==null?0:ni(Ve(_),0,i.length),s=_n(s),i.slice(_,_+s.length)==s}function wM(i,s,_){var m=T.templateSettings;_&&Xt(i,s,_)&&(s=n),i=st(i),s=Ps({},s,m,Bf);var S=Ps({},s.imports,m.imports,Bf),R=Lt(S),N=Yc(S,R),A,P,ee=0,te=s.interpolate||Di,re="__p += '",be=Hc((s.escape||Di).source+"|"+te.source+"|"+(te===Do?pc:Di).source+"|"+(s.evaluate||Di).source+"|$","g"),ye="//# sourceURL="+(lt.call(s,"sourceURL")?(s.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++qO+"]")+`
-`;i.replace(be,function(Pe,Je,tt,pn,Zt,mn){return tt||(tt=pn),re+=i.slice(ee,mn).replace(Tc,lA),Je&&(A=!0,re+=`' +
-__e(`+Je+`) +
-'`),Zt&&(P=!0,re+=`';
-`+Zt+`;
-__p += '`),tt&&(re+=`' +
-((__t = (`+tt+`)) == null ? '' : __t) +
-'`),ee=mn+Pe.length,Pe}),re+=`';
-`;var Le=lt.call(s,"variable")&&s.variable;if(!Le)re=`with (obj) {
-`+re+`
-}
-`;else if(_c.test(Le))throw new qe(c);re=(P?re.replace(Ql,""):re).replace(Xl,"$1").replace(Zl,"$1;"),re="function("+(Le||"obj")+`) {
-`+(Le?"":`obj || (obj = {});
-`)+"var __t, __p = ''"+(A?", __e = _.escape":"")+(P?`, __j = Array.prototype.join;
-function print() { __p += __j.call(arguments, '') }
-`:`;
-`)+re+`return __p
-}`;var ze=xS(function(){return ot(R,ye+"return "+re).apply(n,N)});if(ze.source=re,Ou(ze))throw ze;return ze}function LM(i){return st(i).toLowerCase()}function PM(i){return st(i).toUpperCase()}function kM(i,s,_){if(i=st(i),i&&(_||s===n))return BE(i);if(!i||!(s=_n(s)))return i;var m=Ln(i),S=Ln(s),R=GE(m,S),N=YE(m,S)+1;return Lr(m,R,N).join("")}function FM(i,s,_){if(i=st(i),i&&(_||s===n))return i.slice(0,HE(i)+1);if(!i||!(s=_n(s)))return i;var m=Ln(i),S=YE(m,Ln(s))+1;return Lr(m,0,S).join("")}function UM(i,s,_){if(i=st(i),i&&(_||s===n))return i.replace(ha,"");if(!i||!(s=_n(s)))return i;var m=Ln(i),S=GE(m,Ln(s));return Lr(m,S).join("")}function BM(i,s){var _=Y,m=H;if(St(s)){var S="separator"in s?s.separator:S;_="length"in s?Ve(s.length):_,m="omission"in s?_n(s.omission):m}i=st(i);var R=i.length;if(Pi(i)){var N=Ln(i);R=N.length}if(_>=R)return i;var A=_-ki(m);if(A<1)return m;var P=N?Lr(N,0,A).join(""):i.slice(0,A);if(S===n)return P+m;if(N&&(A+=P.length-A),Au(S)){if(i.slice(A).search(S)){var ee,te=P;for(S.global||(S=Hc(S.source,st(xo.exec(S))+"g")),S.lastIndex=0;ee=S.exec(te);)var re=ee.index;P=P.slice(0,re===n?A:re)}}else if(i.indexOf(_n(S),A)!=A){var be=P.lastIndexOf(S);be>-1&&(P=P.slice(0,be))}return P+m}function GM(i){return i=st(i),i&&Jl.test(i)?i.replace(yo,gA):i}var YM=Hi(function(i,s,_){return i+(_?" ":"")+s.toUpperCase()}),Du=Mf("toUpperCase");function DS(i,s,_){return i=st(i),s=_?n:s,s===n?uA(i)?SA(i):tA(i):i.match(s)||[]}var xS=Ke(function(i,s){try{return cn(i,n,s)}catch(_){return Ou(_)?_:new qe(_)}}),qM=_r(function(i,s){return hn(s,function(_){_=zn(_),cr(i,_,vu(i[_],i))}),i});function HM(i){var s=i==null?0:i.length,_=we();return i=s?Et(i,function(m){if(typeof m[1]!="function")throw new Rn(l);return[_(m[0]),m[1]]}):[],Ke(function(m){for(var S=-1;++S$)return[];var _=Se,m=Vt(i,Se);s=we(s),i-=Se;for(var S=Gc(m,s);++_0||s<0)?new je(_):(i<0?_=_.takeRight(-i):i&&(_=_.drop(i)),s!==n&&(s=Ve(s),_=s<0?_.dropRight(-s):_.take(s-i)),_)},je.prototype.takeRightWhile=function(i){return this.reverse().takeWhile(i).reverse()},je.prototype.toArray=function(){return this.take(Se)},$n(je.prototype,function(i,s){var _=/^(?:filter|find|map|reject)|While$/.test(s),m=/^(?:head|last)$/.test(s),S=T[m?"take"+(s=="last"?"Right":""):s],R=m||/^find/.test(s);S&&(T.prototype[s]=function(){var N=this.__wrapped__,A=m?[1]:arguments,P=N instanceof je,ee=A[0],te=P||He(N),re=function(Je){var tt=S.apply(T,yr([Je],A));return m&&be?tt[0]:tt};te&&_&&typeof ee=="function"&&ee.length!=1&&(P=te=!1);var be=this.__chain__,ye=!!this.__actions__.length,Le=R&&!be,ze=P&&!ye;if(!R&&te){N=ze?N:new je(this);var Pe=i.apply(N,A);return Pe.__actions__.push({func:ys,args:[re],thisArg:n}),new Cn(Pe,be)}return Le&&ze?i.apply(this,A):(Pe=this.thru(re),Le?m?Pe.value()[0]:Pe.value():Pe)})}),hn(["pop","push","shift","sort","splice","unshift"],function(i){var s=es[i],_=/^(?:push|sort|unshift)$/.test(i)?"tap":"thru",m=/^(?:pop|shift)$/.test(i);T.prototype[i]=function(){var S=arguments;if(m&&!this.__chain__){var R=this.value();return s.apply(He(R)?R:[],S)}return this[_](function(N){return s.apply(He(N)?N:[],S)})}}),$n(je.prototype,function(i,s){var _=T[s];if(_){var m=_.name+"";lt.call(Gi,m)||(Gi[m]=[]),Gi[m].push({name:s,func:_})}}),Gi[hs(n,O).name]=[{name:"wrapper",func:n}],je.prototype.clone=GA,je.prototype.reverse=YA,je.prototype.value=qA,T.prototype.at=fD,T.prototype.chain=SD,T.prototype.commit=bD,T.prototype.next=TD,T.prototype.plant=RD,T.prototype.reverse=CD,T.prototype.toJSON=T.prototype.valueOf=T.prototype.value=vD,T.prototype.first=T.prototype.head,xa&&(T.prototype[xa]=hD),T},Fi=bA();Jr?((Jr.exports=Fi)._=Fi,Mc._=Fi):Ut._=Fi}).call(ji)})(gl,gl.exports);var io=gl.exports;const j0={class:"flex w-full flex-col gap-6 rounded-lg bg-base-100 p-4"},ek={class:"flex flex-wrap justify-center gap-2"},tk=["onClick"],nk={class:"indicator-center badge badge-success indicator-item font-medium text-base-100"},rk={class:"mt-2"},ik={class:"flex justify-between gap-2 text-xs font-medium text-primary"},ak={key:1,class:"text-center font-medium"},ok={class:"text-primary"},sk=Ht({__name:"MemorySelect",props:{result:{}},setup(e){const t=xe("episodic");return(n,r)=>{var a;return Me(),Ye("div",j0,[_e("div",ek,[(Me(!0),Ye(Nt,null,la(Object.keys(n.result),o=>(Me(),Ye("button",{key:o,class:Yn(["btn-xs btn rounded-full",[Ie(t)===o?"btn-primary text-base-100":"btn-ghost !border-2 !border-primary"]]),onClick:l=>t.value=o},Gt(o),11,tk))),128))]),((a=n.result[Ie(t)])==null?void 0:a.length)>0?(Me(!0),Ye(Nt,{key:0},la(n.result[Ie(t)],(o,l)=>(Me(),Ye("div",{key:l,class:"indicator flex w-full flex-col gap-2 rounded-md bg-base-200 p-2"},[_e("span",nk,Gt(o.score),1),_e("p",rk,Gt(o.metadata.docstring?`${o.metadata.docstring}`:o.page_content),1),_e("div",ik,[_e("p",null,Gt(Ie(io.capitalize)(o.metadata.source))+" "+Gt(o.metadata.name?`(${o.metadata.name})`:""),1),_e("p",null,Gt(new Date(o.metadata.when*1e3).toLocaleString()),1)])]))),128)):(Me(),Ye("p",ak,[Ci(" No "),_e("span",ok,Gt(Ie(t)),1),Ci(" memories were used. ")]))])}}});function sN(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&sN(n)}),e}class Rb{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function lN(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function $r(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const a in r)n[a]=r[a]}),n}const lk="",Cb=e=>!!e.scope,ck=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,a)=>`${r}${"_".repeat(a+1)}`)].join(" ")}return`${t}${e}`};class uk{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=lN(t)}openNode(t){if(!Cb(t))return;const n=ck(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){Cb(t)&&(this.buffer+=lk)}value(){return this.buffer}span(t){this.buffer+=``}}const vb=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class Jg{constructor(){this.rootNode=vb(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=vb({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{Jg._collapse(n)}))}}class _k extends Jg{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new uk(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Eo(e){return e?typeof e=="string"?e:e.source:null}function cN(e){return Oi("(?=",e,")")}function dk(e){return Oi("(?:",e,")*")}function pk(e){return Oi("(?:",e,")?")}function Oi(...e){return e.map(n=>Eo(n)).join("")}function mk(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function jg(...e){return"("+(mk(e).capture?"":"?:")+e.map(r=>Eo(r)).join("|")+")"}function uN(e){return new RegExp(e.toString()+"|").exec("").length-1}function gk(e,t){const n=e&&e.exec(t);return n&&n.index===0}const Ek=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function eE(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const a=n;let o=Eo(r),l="";for(;o.length>0;){const c=Ek.exec(o);if(!c){l+=o;break}l+=o.substring(0,c.index),o=o.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?l+="\\"+String(Number(c[1])+a):(l+=c[0],c[0]==="("&&n++)}return l}).map(r=>`(${r})`).join(t)}const fk=/\b\B/,_N="[a-zA-Z]\\w*",tE="[a-zA-Z_]\\w*",dN="\\b\\d+(\\.\\d+)?",pN="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",mN="\\b(0b[01]+)",Sk="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",bk=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Oi(t,/.*\b/,e.binary,/\b.*/)),$r({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},fo={begin:"\\\\[\\s\\S]",relevance:0},Tk={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[fo]},hk={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[fo]},Rk={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Ll=function(e,t,n={}){const r=$r({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=jg("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:Oi(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},Ck=Ll("//","$"),vk=Ll("/\\*","\\*/"),Nk=Ll("#","$"),Ok={scope:"number",begin:dN,relevance:0},Ak={scope:"number",begin:pN,relevance:0},yk={scope:"number",begin:mN,relevance:0},Ik={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[fo,{begin:/\[/,end:/\]/,relevance:0,contains:[fo]}]}]},Dk={scope:"title",begin:_N,relevance:0},xk={scope:"title",begin:tE,relevance:0},Mk={begin:"\\.\\s*"+tE,relevance:0},wk=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var Hs=Object.freeze({__proto__:null,MATCH_NOTHING_RE:fk,IDENT_RE:_N,UNDERSCORE_IDENT_RE:tE,NUMBER_RE:dN,C_NUMBER_RE:pN,BINARY_NUMBER_RE:mN,RE_STARTERS_RE:Sk,SHEBANG:bk,BACKSLASH_ESCAPE:fo,APOS_STRING_MODE:Tk,QUOTE_STRING_MODE:hk,PHRASAL_WORDS_MODE:Rk,COMMENT:Ll,C_LINE_COMMENT_MODE:Ck,C_BLOCK_COMMENT_MODE:vk,HASH_COMMENT_MODE:Nk,NUMBER_MODE:Ok,C_NUMBER_MODE:Ak,BINARY_NUMBER_MODE:yk,REGEXP_MODE:Ik,TITLE_MODE:Dk,UNDERSCORE_TITLE_MODE:xk,METHOD_GUARD:Mk,END_SAME_AS_BEGIN:wk});function Lk(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Pk(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function kk(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Lk,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Fk(e,t){Array.isArray(e.illegal)&&(e.illegal=jg(...e.illegal))}function Uk(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Bk(e,t){e.relevance===void 0&&(e.relevance=1)}const Gk=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=Oi(n.beforeMatch,cN(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},Yk=["of","and","for","in","not","or","if","then","parent","list","value"],qk="keyword";function gN(e,t,n=qk){const r=Object.create(null);return typeof e=="string"?a(n,e.split(" ")):Array.isArray(e)?a(n,e):Object.keys(e).forEach(function(o){Object.assign(r,gN(e[o],t,o))}),r;function a(o,l){t&&(l=l.map(c=>c.toLowerCase())),l.forEach(function(c){const u=c.split("|");r[u[0]]=[o,Hk(u[0],u[1])]})}}function Hk(e,t){return t?Number(t):Vk(e)?0:1}function Vk(e){return Yk.includes(e.toLowerCase())}const Nb={},hi=e=>{console.error(e)},Ob=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Ki=(e,t)=>{Nb[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Nb[`${e}/${t}`]=!0)},El=new Error;function EN(e,t,{key:n}){let r=0;const a=e[n],o={},l={};for(let c=1;c<=t.length;c++)l[c+r]=a[c],o[c+r]=!0,r+=uN(t[c-1]);e[n]=l,e[n]._emit=o,e[n]._multi=!0}function $k(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw hi("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),El;if(typeof e.beginScope!="object"||e.beginScope===null)throw hi("beginScope must be object"),El;EN(e,e.begin,{key:"beginScope"}),e.begin=eE(e.begin,{joinWith:""})}}function Wk(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw hi("skip, excludeEnd, returnEnd not compatible with endScope: {}"),El;if(typeof e.endScope!="object"||e.endScope===null)throw hi("endScope must be object"),El;EN(e,e.end,{key:"endScope"}),e.end=eE(e.end,{joinWith:""})}}function zk(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Kk(e){zk(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),$k(e),Wk(e)}function Qk(e){function t(l,c){return new RegExp(Eo(l),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=uN(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const c=this.regexes.map(u=>u[1]);this.matcherRe=t(eE(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;const u=this.matcherRe.exec(c);if(!u)return null;const d=u.findIndex((g,E)=>E>0&&g!==void 0),p=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,p)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];const u=new n;return this.rules.slice(c).forEach(([d,p])=>u.addRule(d,p)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){const u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){const p=this.getMatcher(0);p.lastIndex=this.lastIndex+1,d=p.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function a(l){const c=new r;return l.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),l.terminatorEnd&&c.addRule(l.terminatorEnd,{type:"end"}),l.illegal&&c.addRule(l.illegal,{type:"illegal"}),c}function o(l,c){const u=l;if(l.isCompiled)return u;[Pk,Uk,Kk,Gk].forEach(p=>p(l,c)),e.compilerExtensions.forEach(p=>p(l,c)),l.__beforeBegin=null,[kk,Fk,Bk].forEach(p=>p(l,c)),l.isCompiled=!0;let d=null;return typeof l.keywords=="object"&&l.keywords.$pattern&&(l.keywords=Object.assign({},l.keywords),d=l.keywords.$pattern,delete l.keywords.$pattern),d=d||/\w+/,l.keywords&&(l.keywords=gN(l.keywords,e.case_insensitive)),u.keywordPatternRe=t(d,!0),c&&(l.begin||(l.begin=/\B|\b/),u.beginRe=t(u.begin),!l.end&&!l.endsWithParent&&(l.end=/\B|\b/),l.end&&(u.endRe=t(u.end)),u.terminatorEnd=Eo(u.end)||"",l.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(l.end?"|":"")+c.terminatorEnd)),l.illegal&&(u.illegalRe=t(l.illegal)),l.contains||(l.contains=[]),l.contains=[].concat(...l.contains.map(function(p){return Xk(p==="self"?l:p)})),l.contains.forEach(function(p){o(p,u)}),l.starts&&o(l.starts,c),u.matcher=a(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=$r(e.classNameAliases||{}),o(e)}function fN(e){return e?e.endsWithParent||fN(e.starts):!1}function Xk(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return $r(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:fN(e)?$r(e,{starts:e.starts?$r(e.starts):null}):Object.isFrozen(e)?$r(e):e}var Zk="11.8.0";class Jk extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const Vu=lN,Ab=$r,yb=Symbol("nomatch"),jk=7,SN=function(e){const t=Object.create(null),n=Object.create(null),r=[];let a=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:_k};function u(L){return c.noHighlightRe.test(L)}function d(L){let $=L.className+" ";$+=L.parentNode?L.parentNode.className:"";const ue=c.languageDetectRe.exec($);if(ue){const ge=k(ue[1]);return ge||(Ob(o.replace("{}",ue[1])),Ob("Falling back to no-highlight mode for this block.",L)),ge?ue[1]:"no-highlight"}return $.split(/\s+/).find(ge=>u(ge)||k(ge))}function p(L,$,ue){let ge="",Se="";typeof $=="object"?(ge=L,ue=$.ignoreIllegals,Se=$.language):(Ki("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ki("10.7.0",`Please use highlight(code, options) instead.
-https://github.com/highlightjs/highlight.js/issues/2277`),Se=L,ge=$),ue===void 0&&(ue=!0);const De={code:ge,language:Se};Te("before:highlight",De);const We=De.result?De.result:g(De.language,De.code,ue);return We.code=De.code,Te("after:highlight",We),We}function g(L,$,ue,ge){const Se=Object.create(null);function De(ne,oe){return ne.keywords[oe]}function We(){if(!z.keywords){K.addText(ae);return}let ne=0;z.keywordPatternRe.lastIndex=0;let oe=z.keywordPatternRe.exec(ae),Ce="";for(;oe;){Ce+=ae.substring(ne,oe.index);const Fe=X.case_insensitive?oe[0].toLowerCase():oe[0],at=De(z,Fe);if(at){const[yt,Ze]=at;if(K.addText(Ce),Ce="",Se[Fe]=(Se[Fe]||0)+1,Se[Fe]<=jk&&(se+=Ze),yt.startsWith("_"))Ce+=oe[0];else{const ln=X.classNameAliases[yt]||yt;pe(oe[0],ln)}}else Ce+=oe[0];ne=z.keywordPatternRe.lastIndex,oe=z.keywordPatternRe.exec(ae)}Ce+=ae.substring(ne),K.addText(Ce)}function Xe(){if(ae==="")return;let ne=null;if(typeof z.subLanguage=="string"){if(!t[z.subLanguage]){K.addText(ae);return}ne=g(z.subLanguage,ae,!0,le[z.subLanguage]),le[z.subLanguage]=ne._top}else ne=f(ae,z.subLanguage.length?z.subLanguage:null);z.relevance>0&&(se+=ne.relevance),K.__addSublanguage(ne._emitter,ne.language)}function w(){z.subLanguage!=null?Xe():We(),ae=""}function pe(ne,oe){ne!==""&&(K.startScope(oe),K.addText(ne),K.endScope())}function de(ne,oe){let Ce=1;const Fe=oe.length-1;for(;Ce<=Fe;){if(!ne._emit[Ce]){Ce++;continue}const at=X.classNameAliases[ne[Ce]]||ne[Ce],yt=oe[Ce];at?pe(yt,at):(ae=yt,We(),ae=""),Ce++}}function fe(ne,oe){return ne.scope&&typeof ne.scope=="string"&&K.openNode(X.classNameAliases[ne.scope]||ne.scope),ne.beginScope&&(ne.beginScope._wrap?(pe(ae,X.classNameAliases[ne.beginScope._wrap]||ne.beginScope._wrap),ae=""):ne.beginScope._multi&&(de(ne.beginScope,oe),ae="")),z=Object.create(ne,{parent:{value:z}}),z}function Ne(ne,oe,Ce){let Fe=gk(ne.endRe,Ce);if(Fe){if(ne["on:end"]){const at=new Rb(ne);ne["on:end"](oe,at),at.isMatchIgnored&&(Fe=!1)}if(Fe){for(;ne.endsParent&&ne.parent;)ne=ne.parent;return ne}}if(ne.endsWithParent)return Ne(ne.parent,oe,Ce)}function Be(ne){return z.matcher.regexIndex===0?(ae+=ne[0],1):(Ge=!0,0)}function Ue(ne){const oe=ne[0],Ce=ne.rule,Fe=new Rb(Ce),at=[Ce.__beforeBegin,Ce["on:begin"]];for(const yt of at)if(yt&&(yt(ne,Fe),Fe.isMatchIgnored))return Be(oe);return Ce.skip?ae+=oe:(Ce.excludeBegin&&(ae+=oe),w(),!Ce.returnBegin&&!Ce.excludeBegin&&(ae=oe)),fe(Ce,ne),Ce.returnBegin?0:oe.length}function v(ne){const oe=ne[0],Ce=$.substring(ne.index),Fe=Ne(z,ne,Ce);if(!Fe)return yb;const at=z;z.endScope&&z.endScope._wrap?(w(),pe(oe,z.endScope._wrap)):z.endScope&&z.endScope._multi?(w(),de(z.endScope,ne)):at.skip?ae+=oe:(at.returnEnd||at.excludeEnd||(ae+=oe),w(),at.excludeEnd&&(ae=oe));do z.scope&&K.closeNode(),!z.skip&&!z.subLanguage&&(se+=z.relevance),z=z.parent;while(z!==Fe.parent);return Fe.starts&&fe(Fe.starts,ne),at.returnEnd?0:oe.length}function y(){const ne=[];for(let oe=z;oe!==X;oe=oe.parent)oe.scope&&ne.unshift(oe.scope);ne.forEach(oe=>K.openNode(oe))}let G={};function j(ne,oe){const Ce=oe&&oe[0];if(ae+=ne,Ce==null)return w(),0;if(G.type==="begin"&&oe.type==="end"&&G.index===oe.index&&Ce===""){if(ae+=$.slice(oe.index,oe.index+1),!a){const Fe=new Error(`0 width match regex (${L})`);throw Fe.languageName=L,Fe.badRule=G.rule,Fe}return 1}if(G=oe,oe.type==="begin")return Ue(oe);if(oe.type==="illegal"&&!ue){const Fe=new Error('Illegal lexeme "'+Ce+'" for mode "'+(z.scope||"")+'"');throw Fe.mode=z,Fe}else if(oe.type==="end"){const Fe=v(oe);if(Fe!==yb)return Fe}if(oe.type==="illegal"&&Ce==="")return 1;if(Ae>1e5&&Ae>oe.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ae+=Ce,Ce.length}const X=k(L);if(!X)throw hi(o.replace("{}",L)),new Error('Unknown language: "'+L+'"');const ie=Qk(X);let me="",z=ge||ie;const le={},K=new c.__emitter(c);y();let ae="",se=0,he=0,Ae=0,Ge=!1;try{if(X.__emitTokens)X.__emitTokens($,K);else{for(z.matcher.considerAll();;){Ae++,Ge?Ge=!1:z.matcher.considerAll(),z.matcher.lastIndex=he;const ne=z.matcher.exec($);if(!ne)break;const oe=$.substring(he,ne.index),Ce=j(oe,ne);he=ne.index+Ce}j($.substring(he))}return K.finalize(),me=K.toHTML(),{language:L,value:me,relevance:se,illegal:!1,_emitter:K,_top:z}}catch(ne){if(ne.message&&ne.message.includes("Illegal"))return{language:L,value:Vu($),illegal:!0,relevance:0,_illegalBy:{message:ne.message,index:he,context:$.slice(he-100,he+100),mode:ne.mode,resultSoFar:me},_emitter:K};if(a)return{language:L,value:Vu($),illegal:!1,relevance:0,errorRaised:ne,_emitter:K,_top:z};throw ne}}function E(L){const $={value:Vu(L),illegal:!1,relevance:0,_top:l,_emitter:new c.__emitter(c)};return $._emitter.addText(L),$}function f(L,$){$=$||c.languages||Object.keys(t);const ue=E(L),ge=$.filter(k).filter(H).map(w=>g(w,L,!1));ge.unshift(ue);const Se=ge.sort((w,pe)=>{if(w.relevance!==pe.relevance)return pe.relevance-w.relevance;if(w.language&&pe.language){if(k(w.language).supersetOf===pe.language)return 1;if(k(pe.language).supersetOf===w.language)return-1}return 0}),[De,We]=Se,Xe=De;return Xe.secondBest=We,Xe}function b(L,$,ue){const ge=$&&n[$]||ue;L.classList.add("hljs"),L.classList.add(`language-${ge}`)}function h(L){let $=null;const ue=d(L);if(u(ue))return;if(Te("before:highlightElement",{el:L,language:ue}),L.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(L)),c.throwUnescapedHTML))throw new Jk("One of your code blocks includes unescaped HTML.",L.innerHTML);$=L;const ge=$.textContent,Se=ue?p(ge,{language:ue,ignoreIllegals:!0}):f(ge);L.innerHTML=Se.value,b(L,ue,Se.language),L.result={language:Se.language,re:Se.relevance,relevance:Se.relevance},Se.secondBest&&(L.secondBest={language:Se.secondBest.language,relevance:Se.secondBest.relevance}),Te("after:highlightElement",{el:L,result:Se,text:ge})}function C(L){c=Ab(c,L)}const O=()=>{x(),Ki("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function F(){x(),Ki("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let U=!1;function x(){if(document.readyState==="loading"){U=!0;return}document.querySelectorAll(c.cssSelector).forEach(h)}function B(){U&&x()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",B,!1);function W(L,$){let ue=null;try{ue=$(e)}catch(ge){if(hi("Language definition for '{}' could not be registered.".replace("{}",L)),a)hi(ge);else throw ge;ue=l}ue.name||(ue.name=L),t[L]=ue,ue.rawDefinition=$.bind(null,e),ue.aliases&&Y(ue.aliases,{languageName:L})}function Z(L){delete t[L];for(const $ of Object.keys(n))n[$]===L&&delete n[$]}function M(){return Object.keys(t)}function k(L){return L=(L||"").toLowerCase(),t[L]||t[n[L]]}function Y(L,{languageName:$}){typeof L=="string"&&(L=[L]),L.forEach(ue=>{n[ue.toLowerCase()]=$})}function H(L){const $=k(L);return $&&!$.disableAutodetect}function q(L){L["before:highlightBlock"]&&!L["before:highlightElement"]&&(L["before:highlightElement"]=$=>{L["before:highlightBlock"](Object.assign({block:$.el},$))}),L["after:highlightBlock"]&&!L["after:highlightElement"]&&(L["after:highlightElement"]=$=>{L["after:highlightBlock"](Object.assign({block:$.el},$))})}function ce(L){q(L),r.push(L)}function Re(L){const $=r.indexOf(L);$!==-1&&r.splice($,1)}function Te(L,$){const ue=L;r.forEach(function(ge){ge[ue]&&ge[ue]($)})}function Ee(L){return Ki("10.7.0","highlightBlock will be removed entirely in v12.0"),Ki("10.7.0","Please use highlightElement now."),h(L)}Object.assign(e,{highlight:p,highlightAuto:f,highlightAll:x,highlightElement:h,highlightBlock:Ee,configure:C,initHighlighting:O,initHighlightingOnLoad:F,registerLanguage:W,unregisterLanguage:Z,listLanguages:M,getLanguage:k,registerAliases:Y,autoDetection:H,inherit:Ab,addPlugin:ce,removePlugin:Re}),e.debugMode=function(){a=!1},e.safeMode=function(){a=!0},e.versionString=Zk,e.regex={concat:Oi,lookahead:cN,either:jg,optional:pk,anyNumberOfTimes:dk};for(const L in Hs)typeof Hs[L]=="object"&&sN(Hs[L]);return Object.assign(e,Hs),e},ua=SN({});ua.newInstance=()=>SN({});var e1=ua;ua.HighlightJS=ua;ua.default=ua;var $u,Ib;function t1(){if(Ib)return $u;Ib=1;function e(t){const n="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",o="далее "+"возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",u="загрузитьизфайла "+"вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ",d="разделительстраниц разделительстрок символтабуляции ",p="ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ",g="acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ",E="wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",f=d+p+g+E,b="webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ",h="автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы ",C="виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ",O="авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ",F="использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ",U="отображениевремениэлементовпланировщика ",x="типфайлаформатированногодокумента ",B="обходрезультатазапроса типзаписизапроса ",W="видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ",Z="доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ",M="типизмеренияпостроителязапроса ",k="видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ",Y="wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson ",H="видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных ",q="важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения ",ce="режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ",Re="расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии ",Te="кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip ",Ee="звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ",L="направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ",$="httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений ",ue="важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",ge=b+h+C+O+F+U+x+B+W+Z+M+k+Y+H+q+ce+Re+Te+Ee+L+$+ue,We="comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных "+"comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",Xe="null истина ложь неопределено",w=t.inherit(t.NUMBER_MODE),pe={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},de={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},fe=t.inherit(t.C_LINE_COMMENT_MODE),Ne={className:"meta",begin:"#|&",end:"$",keywords:{$pattern:n,keyword:o+u},contains:[fe]},Be={className:"symbol",begin:"~",end:";|:",excludeEnd:!0},Ue={className:"function",variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:n,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:n,keyword:"знач",literal:Xe},contains:[w,pe,de]},fe]},t.inherit(t.TITLE_MODE,{begin:n})]};return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:n,keyword:o,built_in:f,class:ge,type:We,literal:Xe},contains:[Ne,Ue,fe,Be,w,pe,de]}}return $u=e,$u}var Wu,Db;function n1(){if(Db)return Wu;Db=1;function e(t){const n=t.regex,r=/^[a-zA-Z][a-zA-Z0-9-]*/,a=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],o=t.COMMENT(/;/,/$/),l={scope:"symbol",match:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+)?/},c={scope:"symbol",match:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+)?/},u={scope:"symbol",match:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+)?/},d={scope:"symbol",match:/%[si](?=".*")/},p={scope:"attribute",match:n.concat(r,/(?=\s*=)/)};return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,keywords:a,contains:[{scope:"operator",match:/=\/?/},p,o,l,c,u,d,t.QUOTE_STRING_MODE,t.NUMBER_MODE]}}return Wu=e,Wu}var zu,xb;function r1(){if(xb)return zu;xb=1;function e(t){const n=t.regex,r=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:n.concat(/"/,n.either(...r)),end:/"/,keywords:r,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}return zu=e,zu}var Ku,Mb;function i1(){if(Mb)return Ku;Mb=1;function e(t){const n=t.regex,r=/[a-zA-Z_$][a-zA-Z0-9_$]*/,a=n.concat(r,n.concat("(\\.",r,")*")),o=/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/,l={className:"rest_arg",begin:/[.]{3}/,end:r,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:["as","break","case","catch","class","const","continue","default","delete","do","dynamic","each","else","extends","final","finally","for","function","get","if","implements","import","in","include","instanceof","interface","internal","is","namespace","native","new","override","package","private","protected","public","return","set","static","super","switch","this","throw","try","typeof","use","var","void","while","with"],literal:["true","false","null","undefined"]},contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.C_NUMBER_MODE,{match:[/\bpackage/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{match:[/\b(?:class|interface|extends|implements)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{keyword:"import include"}},{beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[t.inherit(t.TITLE_MODE,{className:"title.function"}),{className:"params",begin:/\(/,end:/\)/,contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,l]},{begin:n.concat(/:\s*/,o)}]},t.METHOD_GUARD],illegal:/#/}}return Ku=e,Ku}var Qu,wb;function a1(){if(wb)return Qu;wb=1;function e(t){const n="\\d(_|\\d)*",r="[eE][-+]?"+n,a=n+"(\\."+n+")?("+r+")?",o="\\w+",c="\\b("+(n+"#"+o+"(\\."+o+")?#("+r+")?")+"|"+a+")",u="[A-Za-z](_?[A-Za-z0-9.])*",d=`[]\\{\\}%#'"`,p=t.COMMENT("--","$"),g={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:d,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:u,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:["abort","else","new","return","abs","elsif","not","reverse","abstract","end","accept","entry","select","access","exception","of","separate","aliased","exit","or","some","all","others","subtype","and","for","out","synchronized","array","function","overriding","at","tagged","generic","package","task","begin","goto","pragma","terminate","body","private","then","if","procedure","type","case","in","protected","constant","interface","is","raise","use","declare","range","delay","limited","record","when","delta","loop","rem","while","digits","renames","with","do","mod","requeue","xor"],literal:["True","False"]},contains:[p,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:c,relevance:0},{className:"symbol",begin:"'"+u},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:d},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[p,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:d},g,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:d}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:d},g]}}return Qu=e,Qu}var Xu,Lb;function o1(){if(Lb)return Xu;Lb=1;function e(t){const n={className:"built_in",begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"},r={className:"symbol",begin:"[a-zA-Z0-9_]+@"},a={className:"keyword",begin:"<",end:">",contains:[n,r]};return n.contains=[a],r.contains=[a],{name:"AngelScript",aliases:["asc"],keywords:["for","in|0","break","continue","while","do|0","return","if","else","case","switch","namespace","is","cast","or","and","xor","not","get|0","in","inout|10","out","override","set|0","private","public","const","default|0","final","shared","external","mixin|10","enum","typedef","funcdef","this","super","import","from","interface","abstract|0","try","catch","protected","explicit","property"],illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[t.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE],relevance:0},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},n,r,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}return Xu=e,Xu}var Zu,Pb;function s1(){if(Pb)return Zu;Pb=1;function e(t){const n={className:"number",begin:/[$%]\d+/},r={className:"number",begin:/\b\d+/},a={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},o={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[t.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[a,o,t.inherit(t.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{_:["order","deny","allow","setenv","rewriterule","rewriteengine","rewritecond","documentroot","sethandler","errordocument","loadmodule","options","header","listen","serverroot","servername"]},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",n]},a,r,t.QUOTE_STRING_MODE]}}],illegal:/\S/}}return Zu=e,Zu}var Ju,kb;function l1(){if(kb)return Ju;kb=1;function e(t){const n=t.regex,r=t.inherit(t.QUOTE_STRING_MODE,{illegal:null}),a={className:"params",begin:/\(/,end:/\)/,contains:["self",t.C_NUMBER_MODE,r]},o=t.COMMENT(/--/,/$/),l=t.COMMENT(/\(\*/,/\*\)/,{contains:["self",o]}),c=[o,l,t.HASH_COMMENT_MODE],u=[/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/],d=[/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name|0 paragraph paragraphs rest reverse running time version weekday word words year"},contains:[r,t.C_NUMBER_MODE,{className:"built_in",begin:n.concat(/\b/,n.either(...d),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:n.concat(/\b/,n.either(...u),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[t.UNDERSCORE_TITLE_MODE,a]},...c],illegal:/\/\/|->|=>|\[\[/}}return Ju=e,Ju}var ju,Fb;function c1(){if(Fb)return ju;Fb=1;function e(t){const n="[A-Za-z_][0-9A-Za-z_]*",r={keyword:["if","for","while","var","new","function","do","return","void","else","break"],literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],built_in:["Abs","Acos","All","Angle","Any","Area","AreaGeodetic","Array","Asin","Atan","Atan2","Attachments","Average","Back","Bearing","Boolean","Buffer","BufferGeodetic","Ceil","Centroid","Clip","Concatenate","Console","Constrain","Contains","ConvertDirection","Cos","Count","Crosses","Cut","Date","DateAdd","DateDiff","Day","Decode","DefaultValue","Densify","DensifyGeodetic","Dictionary","Difference","Disjoint","Distance","DistanceGeodetic","Distinct","Domain","DomainCode","DomainName","EnvelopeIntersects","Equals","Erase","Exp","Expects","Extent","Feature","FeatureSet","FeatureSetByAssociation","FeatureSetById","FeatureSetByName","FeatureSetByPortalItem","FeatureSetByRelationshipName","Filter","Find","First","Floor","FromCharCode","FromCodePoint","FromJSON","GdbVersion","Generalize","Geometry","GetFeatureSet","GetUser","GroupBy","Guid","Hash","HasKey","Hour","IIf","Includes","IndexOf","Insert","Intersection","Intersects","IsEmpty","IsNan","ISOMonth","ISOWeek","ISOWeekday","ISOYear","IsSelfIntersecting","IsSimple","Left|0","Length","Length3D","LengthGeodetic","Log","Lower","Map","Max","Mean","Mid","Millisecond","Min","Minute","Month","MultiPartToSinglePart","Multipoint","NextSequenceValue","None","Now","Number","Offset|0","OrderBy","Overlaps","Point","Polygon","Polyline","Pop","Portal","Pow","Proper","Push","Random","Reduce","Relate","Replace","Resize","Reverse","Right|0","RingIsClockwise","Rotate","Round","Schema","Second","SetGeometry","Simplify","Sin","Slice","Sort","Splice","Split","Sqrt","Stdev","SubtypeCode","SubtypeName","Subtypes","Sum","SymmetricDifference","Tan","Text","Timestamp","ToCharCode","ToCodePoint","Today","ToHex","ToLocal","Top|0","Touches","ToUTC","TrackAccelerationAt","TrackAccelerationWindow","TrackCurrentAcceleration","TrackCurrentDistance","TrackCurrentSpeed","TrackCurrentTime","TrackDistanceAt","TrackDistanceWindow","TrackDuration","TrackFieldWindow","TrackGeometryWindow","TrackIndex","TrackSpeedAt","TrackSpeedWindow","TrackStartTime","TrackWindow","Trim","TypeOf","Union","Upper","UrlEncode","Variance","Week","Weekday","When","Within","Year"]},a={className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},o={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:t.C_NUMBER_RE}],relevance:0},l={className:"subst",begin:"\\$\\{",end:"\\}",keywords:r,contains:[]},c={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,l]};l.contains=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,c,o,t.REGEXP_MODE];const u=l.contains.concat([t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",case_insensitive:!0,keywords:r,contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,c,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,a,o,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+t.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:r,contains:u}]}]}],relevance:0},{beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[t.inherit(t.TITLE_MODE,{className:"title.function",begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:u}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}return ju=e,ju}var e_,Ub;function u1(){if(Ub)return e_;Ub=1;function e(n){const r=n.regex,a=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),o="decltype\\(auto\\)",l="[a-zA-Z_]\\w*::",c="<[^<>]+>",u="(?!struct)("+o+"|"+r.optional(l)+"[a-zA-Z_]\\w*"+r.optional(c)+")",d={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},p="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",g={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[n.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+p+"|.)",end:"'",illegal:"."},n.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},E={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},f={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},n.inherit(g,{className:"string"}),{className:"string",begin:/<.*?>/},a,n.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:r.optional(l)+n.IDENT_RE,relevance:0},h=r.optional(l)+n.IDENT_RE+"\\s*\\(",C=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],O=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],F=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],U=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],W={type:O,keyword:C,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:F},Z={className:"function.dispatch",relevance:0,keywords:{_hint:U},begin:r.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,n.IDENT_RE,r.lookahead(/(<[^<>]+>|)\s*\(/))},M=[Z,f,d,a,n.C_BLOCK_COMMENT_MODE,E,g],k={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:W,contains:M.concat([{begin:/\(/,end:/\)/,keywords:W,contains:M.concat(["self"]),relevance:0}]),relevance:0},Y={className:"function",begin:"("+u+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:W,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:o,keywords:W,relevance:0},{begin:h,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[g,E]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:[a,n.C_BLOCK_COMMENT_MODE,g,E,d,{begin:/\(/,end:/\)/,keywords:W,relevance:0,contains:["self",a,n.C_BLOCK_COMMENT_MODE,g,E,d]}]},d,a,n.C_BLOCK_COMMENT_MODE,f]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:W,illegal:"",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(k,Y,Z,M,[f,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",end:">",keywords:W,contains:["self",d]},{begin:n.IDENT_RE+"::",keywords:W},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function t(n){const r={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},a=e(n),o=a.keywords;return o.type=[...o.type,...r.type],o.literal=[...o.literal,...r.literal],o.built_in=[...o.built_in,...r.built_in],o._hints=r._hints,a.name="Arduino",a.aliases=["ino"],a.supersetOf="cpp",a}return e_=t,e_}var t_,Bb;function _1(){if(Bb)return t_;Bb=1;function e(t){const n={variants:[t.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),t.COMMENT("[;@]","$",{relevance:0}),t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+t.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},n,t.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}return t_=e,t_}var n_,Gb;function d1(){if(Gb)return n_;Gb=1;function e(t){const n=t.regex,r=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a=/[\p{L}0-9._:-]+/u,o={className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},l={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},c=t.inherit(l,{begin:/\(/,end:/\)/}),u=t.inherit(t.APOS_STRING_MODE,{className:"string"}),d=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),p={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:a,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[o]},{begin:/'/,end:/'/,contains:[o]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[l,d,u,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[l,c,d,u]}]}]},t.COMMENT(//,{relevance:10}),{begin://,relevance:10},o,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[d]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/